タイトル説明
189回転アレイ
k個の位置だけ右へ配列、配列の要素を考慮すると、前記kは非負です。
例1:
入力:[6]、[7]及びk = 3
出力:[5,6,7,1,2,3,4]
説明:
右のステップ1の回転:[7,1 1,2,3,4,5,6]
[6,7,1,2,3,4,5]:右には2つのステップ回転
右ステップ3に回転を[5,6,7,1,2,3 、4]例2:
入力:[-1、-100,3,99]及びk = 2
出力:[3,99、-1、-100]
説明:
右のステップ1の回転:[99、-1、-100,3]
に右回転ステップ2:[3,99、-1、-100]
説明:限り多くの解決策を考え出すことができる限り、この問題を解決するには、少なくとも3つの異なる方法があります。
これは、スペースの複雑さはO(1)アルゴリズム、その場で必要です。出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/rotate-array
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。
回答:
解決策1:
巡回ポップ()とアンシフト() 、
VaRの回転= 関数(NUMS、K){ せ、I = 0 ながら(I < K){ nums.unshift(nums.pop()) 私は ++ } }。
解決策2:
あなたもすることができます)(スプライス全体尾の要素がカットされた番目、kの使用を拡大...後)(アンシフト
VaRの回転= 関数(NUMS、k)は、{ LENせ = nums.lengthの 戻り nums.unshiftを(... nums.splice(len- K、K)) }。