【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))
};
回答:
解答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))
};
var rotate = function(nums, k) {
let i = 0
while(i < k){
nums.unshift(nums.pop())
i++
}
};
var rotate = function(nums, k) {
let len = nums.length
return nums.unshift(...nums.splice(len-k,k))
};