forked from KnowledgeCenterYoutube/LeetCode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path189_Rotate_Array
62 lines (52 loc) · 1.32 KB
/
189_Rotate_Array
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Leetocde 189: Rotate Array
Detailed video Explanation: https://youtu.be/5D9OrHsw3M0
========================================================
C++:
----
class Solution {
public:
void rotate(vector<int>& nums, int k) {
int n = nums.size();
k %= n;
reverse(nums.begin(), nums.begin()+n-k);
reverse(nums.begin() + n - k, nums.end());
reverse(nums.begin(), nums.end());
}
};
Java:
-----
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) {
int n = nums.length;
k %= n;
reverse(nums, 0, n-k-1);
reverse(nums, n - k, n - 1);
reverse(nums, 0, n-1);
}
}
Python3:
--------
class Solution:
def reverse(self, nums, l, r):
while l < r:
nums[l], nums[r] = nums[r], nums[l]
l += 1
r -= 1
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
k %= n
self.reverse(nums, 0, n-k-1)
self.reverse(nums, n - k, n - 1)
self.reverse(nums, 0, n-1)