class Solution {
public void rotate(int[] nums, int k) {
k = k % nums.length; // 如果k比数组长度大,求余数得到真正的轮转数
reverse(nums, 0, nums.length - 1); // 步骤1:反转整个数组
reverse(nums, 0, k - 1); // 步骤2:反转前k个元素
reverse(nums, k, nums.length - 1); // 步骤3:反转剩下的元素
}
private void reverse(int[] nums, int start, int end) {
while (start < end) {
// 交换start和end位置的元素
int temp = nums[start];
nums[start] = nums[end];
nums[end] = temp;
start++;
end--;
}
}
}
反转数组(Javan0实现)
最新推荐文章于 2024-07-09 21:36:59 发布