Skip to content

Commit 9e517cb

Browse files
authored
189.Rotate
1 parent 386743c commit 9e517cb

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

Rotate.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
private void reverse(int[] nums, int start, int end) {
3+
while (start < end) {
4+
int temp = nums[start];
5+
nums[start] = nums[end];
6+
nums[end] = temp;
7+
start++;
8+
end--;
9+
}
10+
}
11+
12+
public void rotate(int[] nums, int k) {
13+
int n = nums.length;
14+
k %= n; //一定要取余,避免indexOfRange错误
15+
reverse(nums, 0, n-1); //先整体翻转
16+
reverse(nums, 0, k-1); //再翻转第 1 到 k 个数
17+
reverse(nums, k, n-1); //最后翻转第 k+1 到第 n 个数
18+
}
19+
}

0 commit comments

Comments
 (0)