1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public void rotate(int[] nums, int k) { k %= nums.length; if (k == 0) { return; }
reverse(nums, 0, nums.length - 1); reverse(nums, 0, k - 1); reverse(nums, k, nums.length - 1); }
private void reverse(int[] nums, int i, int j) { while (i < j) { swap(nums, i++, j--); } }
private void swap(int[] nums, int i, int j) { int tmp = nums[i]; nums[i] = nums[j]; nums[j] = tmp; } }
|