要求:rt
思路:1243,1324,1342,1423,1432
在数组最后往前遍历,一直递增到左边一个如243,然后从43选第一个比2大的3交换,再把42调有序即可
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int n=nums.size();
int l=n-2;
while(l>=0&&nums[l]>=nums[l+1])--l;
int r=n-1;
if(l>=0){
while(l<r&&nums[r]<=nums[l])--r;
swap(nums[l],nums[r]);
}
r=n-1;
for(++l;l<r;++l,--r)swap(nums[l],nums[r]);
}
};