189. 轮转数组
可阿奇 2024/4/18 算法
题目链接:189. 轮转数组 (opens new window)
经典轮转题目,只用记一种方法:逆置。可以自己重写reverse函数。代码如下:
class Solution {
public void reverse(int[] nums, int l, int r) {
// 逆置操作
while (l < r) {
int temp = nums[l];
nums[l] = nums[r];
nums[r] = temp;
l++;
r--;
}
}
public void rotate(int[] nums, int k) {
k = k % nums.length;//这里k的可能大于nums.length,因此取模,相当于多轮转一圈
reverse(nums, 0, nums.length - k - 1);
reverse(nums, nums.length - k, nums.length - 1);
reverse(nums, 0, nums.length - 1);
}
}