首页 > 其他 > 详细

下一个排列

时间:2020-03-07 19:14:25      阅读:57      评论:0      收藏:0      [点我收藏+]
class Solution {
public:
    void nextPermutation(vector<int>& nums) {
        if(nums.size()<=1) return;

        int i=nums.size()-2;
        while(i>=0 && nums[i]>=nums[i+1]){
            i-=1;
        }

        if(i==-1){
            reverse(nums.begin(),nums.end());
            return;
        }

        int j=nums.size()-1;
        while(j>=0 && nums[j]<=nums[i]){
            j-=1;
        }

        int tmp=nums[i];
        nums[i]=nums[j];
        nums[j]=tmp;

        reverse(nums.begin()+i+1,nums.end());
        return;
    }
};

 

下一个排列

原文:https://www.cnblogs.com/zijidan/p/12435818.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!