学习思路,注意是从后面开始查
class Solution {
public void nextPermutation(int[] nums) {
int len = nums.length;
int i = 0;
for(i=len-1; i>0; i--){
if(nums[i]<=nums[i-1]) continue;
else{
int l = 0;
int min = Integer.MAX_VALUE;
for(int k=i; k<len; k++){
if(nums[k]>nums[i-1]&&nums[k]<min){
l = k;
min = nums[k];
}
}
swap(nums,l,i-1);
Arrays.sort(nums,i,len);
break;
}
}
if(i==0) Arrays.sort(nums);
}
public void swap(int[] nums,int i,int j){
int a = nums[i];
nums[i] = nums[j];
nums[j] = a;
}
}
虽然是照着题解,但是不摆烂!