思路:从后往前找到第一个nums[i-1]>nums[i] 然后从后往前(len-1 -->i(包含))找到第一个大于nums[i-1]的数,与nums[i-1]交换,然后对下标区间为[i,len-1]的元素进行排序。
class Solution {
public:void nextPermutation(vector<int>& nums) {int len=nums.size();int i=0;for( i=len-1;i>0;i--){if(nums[i]>nums[i-1]){break;} }if(i==0){sort(nums.begin(),nums.end());}else{for(int j=len-1;j>=i;j--){if(nums[j]>nums[i-1]){swap(nums[j],nums[i-1]);break;}}sort(nums.begin()+i,nums.end());}}
};