1.题目
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
2.答案
class Solution {
public void rotate(int[] nums, int k) {
int n=nums.length;
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[(i+k)%n]=nums[i];//找规律,移动后新下标为(i+k)%n
}
//将arr从0开始拷贝到nums,在nums中从0存储n个数
//arr表示被拷贝的数组,nums表示目标数组,存放拷贝数组的
//第一个0表示arr起始拷贝点,第二个0表示nums存储起始点,n表示拷贝元素个数
System.arraycopy(arr,0,nums,0,n);
}
}