There is a specific algorithm to get the next permutation.
Solution:
# T:O(n) S:O(1)
class Solution:
# @param num, a list of integer
# @return a list of integer
def nextPermutation(self, num):
partition = -1
for i in range(len(num)-2, -1, -1):
if num[i] < num[i+1]:
partition = i
break
if partition == -1:
num.reverse()
else:
for i in range(len(num)-1, partition, -1):
if num[i] > num[partition]:
num[i],num[partition] = num[partition],num[i]
break
num[partition+1:len(num)]=num[partition+1:len(num)][::-1]
Run Time: 76 ms
No comments:
Post a Comment