地址
https://leetcode-cn.com/problems/next-permutation/
描述
思想
代码
class Solution {
public:
//以2 3 5 4 1举例
void nextPermutation(vector<int>& nums) {
int k=nums.size()-1;
while(k>0&&nums[k-1]>=nums[k]) k--;
//假如数组就是降序数组,返回升序数组
if(k==0){
sort(nums.begin(),nums.end());
}
else {
//将3与后面降序序列中大于它的最小数交换位置
int t=k;
while(t<nums.size()&&nums[t]>nums[k-1]) t++;
swap(nums[k-1],nums[t-1]);
//接着将降序序列进行排序
sort(nums.begin()+k,nums.end());
}
}
};