leetcode31 Next Permutation

来源:互联网 发布:淘宝排名在线查询 编辑:程序博客网 时间:2024/05/29 18:52

解题思路:从后向前搜索,找到第一个按升序的元素对,然后再从后向前搜索,找到元素对之后第一个大于较小元素的元素,将他们交换,然后反转交换前较小元素之后的元素

class Solution(object):    def Next_Permutation(self,nums):        partition=-1        for i in range(len(nums)-2,-1,-1):            if num[i]<num[i+1]                partition=i                break        if partition==-1:            nums.reverse()        else:            for i in range(len(nums)-1,partition,-1):                if num[i]>num[partition]:                      num[i],num[partition]=num[partition],num[i]                      break            nums[partition+1:]=nums[partition+1:][::-1]
原创粉丝点击