Java中数组复制不能直接使用赋值操作,赋值操作仅使同一个数组对象多了一个名称,对新名称的操作仍然在原数组对象上操作,容易出错。为了产生新的数组对象,可以使用Arrays类的copyOfRange方法。题目是这个。
贴代码:
import java.util.Arrays;
public class Solution {
public void rotate(int[] nums, int k) {
int len = nums.length;
int[] temp = Arrays.copyOfRange(nums, 0, len);
int i;
int index;
for (i=0;i<len;i++) {
index = (i + k) % len;
nums[index] = temp[i];
}
}
}
Note:同样,copyOfRange的参数to也是exclusive的。