Skip to content

Commit c23c00f

Browse files
committed
5.nextPermutation
1 parent b217173 commit c23c00f

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
def nextPermutation(arr):
2+
n = len(arr)
3+
pivot = -1
4+
for i in range(n - 2, -1, -1):
5+
if arr[i] < arr[i + 1]:
6+
pivot = i
7+
break
8+
if pivot == -1:
9+
arr.reverse()
10+
return
11+
for i in range(n - 1, pivot, -1):
12+
if arr[pivot] < arr[i]:
13+
arr[pivot], arr[i] = arr[i], arr[pivot]
14+
break
15+
left, right = pivot + 1, n - 1
16+
while left < right:
17+
arr[left], arr[right] = arr[right], arr[left]
18+
left += 1
19+
right -= 1
20+
return arr
21+
22+
23+
print(nextPermutation([1, 2, 4, 5, 6, 0]))
24+
25+
# T.C = O(n)
26+
# S.C = O(1)

0 commit comments

Comments
 (0)