[Lintcode]52. Next Permutation
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
思路
写到怀疑人生。
一开始就没好好注意条件活该!