leetcode Next Permutation

bug:

忘记i>0的判断

class Solution {
public:
    void nextPermutation(vector<int> &num) 
    {
        int i=num.size()-1;
        while(i>0&&num[i]<=num[i-1])
        i--;
        if(i==0)sort(num.begin(),num.end());
        else 
        {
            int k=num[i-1];
            int diff=INT_MAX;
            int index=i;
            for(int j=i;j<num.size();j++)
            {
                if(num[j]-k>0&&num[j]-k<diff)
                {
                    diff=num[j]-k;
                    index=j;
                }                
            }
            swap(num[index],num[i-1]);
            sort(num.begin()+i,num.end());
        }       
    }
};
原文地址:https://www.cnblogs.com/tgkx1054/p/3104840.html