轮转数组
输入: 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]
题目来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public void rotate(int[] nums, int k) {
int[] numCopy = new int[nums.length];
int len = nums.length;
// 对数组进行复制
for (int i = 0; i < nums.length; i++) {
numCopy [i] = nums[i];
}
// 如果超过了数组长度,则进行取余数
k = k % len;
// 将倒数 k个元素赋值给原来数组的前 k 位
for (int i = 0; i < k; i++) {
nums[k-i-1] = numCopy [len-i-1];
}
for (int j = 0; j < len-k; j++) {
nums[k+j] = numCopy [j];
}
}