码迷,mamicode.com
首页 > 其他好文 > 详细

[Lintcode]52. Next Permutation

时间:2019-02-11 01:11:33      阅读:135      评论:0      收藏:0      [点我收藏+]

标签: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

标签:reverse   人生   topic   order   out   sel   greedy   代码   注意   

原文地址:https://www.cnblogs.com/siriusli/p/10360718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!