Skip to content

Commit fa5cf12

Browse files
committed
rotate array
1 parent def8c03 commit fa5cf12

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

rotateArray.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# @param nums, a list of integer
2+
# @param k, num of steps
3+
# @return nothing, please modify the nums list in-place.
4+
def rotate(nums, k):
5+
def reverse(arr, start, end):
6+
while start < end:
7+
arr[start], arr[end] = arr[end], arr[start]
8+
start += 1
9+
end -= 1
10+
n = len(nums)
11+
k = k % n
12+
reverse(nums, 0, n - 1)
13+
reverse(nums, 0, k - 1)
14+
reverse(nums, k, n - 1)
15+
16+
nums = [1, 2, 3, 4, 5, 6, 7]
17+
rotate(nums, 3)
18+
assert nums == [5, 6, 7, 1, 2, 3, 4]
19+
nums = [1, 2, 3]
20+
rotate(nums, 0)
21+
assert nums == [1, 2, 3]
22+
nums = [1, 2, 3]
23+
rotate(nums, 4)
24+
assert nums == [3, 1, 2]

0 commit comments

Comments
 (0)