Next Permutation - LeetCode

Posted 真子集

tags:

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

题目链接

Next Permutation - LeetCode

注意点

  • 如果是字典序最大的串则要返回字典序最小的串

解法

解法一:参见:http://www.cnblogs.com/grandyang/p/4428207.html 时间复杂度O(n)。

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

小结

  • 排列题,有许多变种

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

全排列 ( next_permutation)

Next Permutation

A - Next_permutation

Next Permutation

next_permutation(全排列算法)

STL next_permutation和prev_permutation函数