一:题目
二:上码
class Solution {
/**
规律: 从后往前找到那个比其小的数进行交换 然后 在小的数后面的数都进行排序
12345 --> 12354
12354 --> 12453 --> 12435
*/
public void nextPermutation(int[] nums) {
int len = nums.length;
for (int i = len - 1; i >= 0; i--) { //i表示的是前面的那个数
for (int j = len-1; j > i; j--) {//j表示的是后面的那个数
if (nums[i] < nums[j]) {
swap(nums,i,j);
Arrays.sort(nums,i+1,len);//(nuns,from,to) to:比正常下标大一
return;
}
}
}
Arrays.sort(nums);
}
public void swap(int[] nums,int i,int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}