189. Rotate Array - Medium
前往題目
想法
- 這題以前做過,有個想法很簡單而且還是
in-place
但是想不起來
思路
看了一下以前的submission
,恍然大悟,就是先全部反轉,然後反轉左半部,再反轉右半部
Code
class Solution {
public void rotate(int[] nums, int k) {
k %= nums.length;
// Reverse the entire array
reverse(nums, 0, nums.length - 1);
// Reverse the left part
reverse(nums, 0, k - 1);
// Reverse the second part
reverse(nums, k, nums.length - 1);
}
private void reverse(int[] nums, int start, int end) {
while (start < end) {
int tmp = nums[start];
nums[start] = nums[end];
nums[end] = tmp;
++start;
--end;
}
}
}
2024/04/27
- 做出來了,找到規律就很簡單
189. Rotate Array - Medium
https://f88083.github.io/2023/12/19/189-Rotate-Array-Medium/