(1) 模拟法
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int a=-1,b=-1;
for(int i=nums.size()-1;i>0;i--) {
if(nums[i-1]<nums[i]) {
a=i-1;
break;
}
}
if(a!=-1) {
for(int i=nums.size()-1;i>a;i--) {
if(nums[i]>nums[a]) {
b=i;
break;
}
}
swap(nums[a],nums[b]);
}
reverse(nums.begin()+a+1,nums.end());
return;
}
};