示例 1:
输入: nums = [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]
解法一: unshift与pop
var rotate = function(nums, k) {
let len = nums.length;
let offset = k % len;
for (let i = 0; i < offset; i++) {
nums.unshift(nums.pop());
}
return nums;
};
解法二:splice与push
var rotate = function(nums, k) {
let index = k % nums.length;
if(index == 0){
return nums;
}else{
// 这里slice也可以
let left = nums.splice(0,nums.length - index);
nums.push(...left)
}
return nums;
};
解法三:slice与concat
var rotate = function(nums, k) {
let index = k % nums.length;
let right = nums.slice(0,nums.length - index)
let left = nums.slice(nums.length - index)
let newArr = left.concat(right);
for(let i = 0;i < nums.length;i ++){
nums[i] = newArr[i]
}
return nums;
};