给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数
代码:
let num=[-1,3] ;
let k =3;
let rotate = function(nums, k) {
//声明一个和传入数组一模一样的数组,防止数组值被覆盖
let numm=[...nums];
//排除向右移动的位数大于数组长度的情况
if(k>numm.length)
k=k-numm.length;
for(let i=0;i<numm.length;i++){
//当下标的位置加上移动的位数相加小于数组长度时,直接将数组向右移动相应的位数
if(i+k<numm.length){
nums[i+k]=numm[i]
}else{
//否则存在如下规律
nums[Math.abs(numm.length-i-k)]=numm[i];
}
}
return nums;
}
console.log(rotate(num,k))