31. Next Permutation

2018-08-25  本文已影响0人  刘小小gogo
image.png image.png
class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        int i = nums.size() - 2, j = nums.size() - 1;
        while(nums[i] >= nums[i+1]) i--;
        if(i >= 0){
            while(nums[j] <= nums[i]) j--;//这里一定要是小于等于,因为等于也不可以交换,否则就不是下一个排列组合了
            swap(nums[j], nums[i]);
        }
        reverse(nums.begin() + i + 1, nums.end());     
    }
};
image.png
http://bangbingsyb.blogspot.com/2014/11/leetcode-next-permutation.html
上一篇 下一篇

猜你喜欢

热点阅读