思路:
// @Title: 下一个排列 (Next Permutation)
// @Author: qisiii
// @Date: 2024-04-25 22:21:42
// @Runtime: 9 ms
// @Memory: 42.5 MB
// @comment:
// @flag:
class Solution {
public void nextPermutation(int[] nums) {
int l=0,j=0;
for(int i=nums.length-1;i>0;i--){
if(nums[i]>nums[i-1]){
l=i-1;
j=i;
break;
}
}
System.out.println(l+" "+j);
if(j==0){
reverse(nums,j);
return;
}
//表明整体是倒序
for(int i2=nums.length-1;i2>0;i2--){
if(nums[l]<nums[i2]){
int temp=nums[i2];
nums[i2]=nums[l];
nums[l]=temp;
reverse(nums,j);
break;
}
}
}
private void reverse(int[] nums,int j){
int r=nums.length-1;
while(j<r){
int temp=nums[j];
nums[j]=nums[r];
nums[r]=temp;
j++;
r--;
}
}
}