解题思路:
1.开辟一个同样大小的新数组res;
2.k可能大于数组长度,因此对k取模,即k%=len;
3.遍历原数组,原数组i处的元素应该放在新数组的(i+k)%len处
4.将新数组中的元素复制到原数组中去
代码实现:
class Solution {
public void rotate(int[] nums, int k) {
//环形数组
int len=nums.length;
if(len<1){
return;
}
int[] res=new int[len];
k%=len;
for(int i=0;i<len;++i){
int index=(i+k)%len;
res[index]=nums[i];
}
for(int i=0;i<len;++i){
nums[i]=res[i];
}
}
}