[Lintcode]52. Next Permutation
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Lintcode]52. Next Permutation相关的知识,希望对你有一定的参考价值。
?????????reverse ?????? topic order out sel greedy ?????? ??????
52. Next Permutation
- ????????????: Medium
- Topic: Greedy
Description
52. Next Permutation
- ????????????: Medium
- Topic: Greedy
Description
Given a list of integers, which denote a permutation.
Find the next permutation in ascending order.
Example
Example 1:
Input:[1]
Output:[1]
Example 2:
Input:[1,3,2,3]
Output:[1,3,3,2]
Example 3:
Input:[4,3,2,1]
Output:[1,2,3,4]
Notice
The list may contains duplicate integers.
???????????????
class Solution:
"""
@param nums: A list of integers
@return: A list of integers
"""
def nextPermutation(self, num):
# write your code here
for i in range(len(num)-2, -1, -1):
if num[i] < num[i+1]:
break
else:
num.reverse()
return num
for j in range(len(num)-1, i, -1):
if num[j] > num[i]:
num[i], num[j] = num[j], num[i]
break
for j in range(0, (len(num) - i)//2):
num[i+j+1], num[len(num)-j-1] = num[len(num)-j-1], num[i+j+1]
return num
??????
?????????????????????
??????????????????????????????????????????
以上是关于[Lintcode]52. Next Permutation的主要内容,如果未能解决你的问题,请参考以下文章
lintcode-medium-Next Permutation II