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());
}
}
};
浙公网安备 33010602011771号