【Leetcode】【簡単】【189.回転配列】【JavaScript】

1597 ワード

 


タイトルの説明


189.回転配列


配列を指定し、配列内の要素をk個の位置に右に移動します.ここで、kは負ではありません.

例1:


入力:[1,2,3,4,5,6,7]およびk=3出力:[5,6,7,1,2,3,4]解釈:右回転1ステップ:[7,1,2,3,4,5,6]右回転2ステップ:[6,7,1,2,3,4,5]右回転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:


ループpop()およびunshift()
 
var rotate = function(nums, k) {
    let i = 0
    while(i < k){
        nums.unshift(nums.pop())
        i++
    }
};

 

解答2:


また、splice()の末尾を切り取ったk個の要素全体を使用することもできます.展開してからunshift()
 
var rotate = function(nums, k) {
    let len = nums.length
    return nums.unshift(...nums.splice(len-k,k))
};