[Leetcode] [シンプル] [189] [JavaScriptを】回転アレイ

 

タイトル説明

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))
}。

 

おすすめ

転載: www.cnblogs.com/2463901520-sunda/p/11456546.html