class Solution {
public void nextPermutation(int[] nums) {
//1.找第一个小于右边的数
int n = nums.length;
int firstNum = n-1,firstLarge = n-1;
for(int i = n-2;i >= 0;i--){
if(nums[i] < nums[i+1]){
firstNum = i;
break;
}
}
if(firstNum == n-1)
Arrays.sort(nums);
else{
//2.找第一个比该数大的
for(int i = n-1;i >= 0;i--){
if(nums[i] > nums[firstNum]){
swap(nums,firstNum,i);
break;
}
}
//3.交换,并将后面的数排序
Arrays.sort(nums,firstNum+1,n);
}
}
public void swap(int[] nums,int i,int j){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
07-03
2521
10-09
402
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交