c++
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int tag=0;
int z=-1;
for(int i=nums.size()-1;i>=0;i--)
{
if(i!=0&&nums[i]>nums[i-1])
{
z=i-1;
break;
}
}
if(z==-1){
sort(nums.begin(),nums.end());
return;
}
for(int i=nums.size()-1;i>=z;i--)
{
int pos=-1;
for(int j=i-1;j>=z;j--)
{
if(nums[i]>nums[j])
{
pos=j;
break;
}
}
if(pos!=-1)
{
swap(nums[i],nums[pos]);
sort(nums.begin()+pos+1,nums.end());
break;
}
}
}
};