31. Next Permutation

Posted ymjyqsx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了31. Next Permutation相关的知识,希望对你有一定的参考价值。

https://www.cnblogs.com/grandyang/p/4428207.html

按照博客的思路在做就好,唯一值得注意的一点:如果整个数组都没有 nums[i+1] > nums[i],你就需要把整个数组reverse

]>class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        int length = nums.size();
        if(length <= 0)
            return;
        int j;
        for(int i = length - 2;i >= 0;i--){
            if(nums[i+1] > nums[i]){
                for(j = length - 1;j > i;j--){
                    if(nums[j] > nums[i])
                        break;
                }
                swap(nums[j],nums[i]);
                reverse(nums.begin() + i + 1,nums.end());
                return;
            }
        }
        reverse(nums.begin(),nums.end());
    }
};

 

以上是关于31. Next Permutation的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 31. Next Permutation

LeetCode - 31. Next Permutation

Python31. Next Permutation

LeetCode OJ 31. Next Permutation

LeetCode31 Next Permutation and LeetCode60 Permutation Sequence

31. Next Permutation