思路:如果整个数字都是降序的,说明已经到最后一个排序了,因此下一个排列就是Arrays.sort(nums),因此需要找升序的两个相邻数字,找到后将右侧的数字排序,找到比nums[i-1]大的数字,交换位置,返回这个结果。
public void nextPermutation(int[] nums) {
int len=nums.length;
for(int i=len-1;i>0;i--){
if(nums[i]>nums[i-1]){
Arrays.sort(nums,i,len);
for(int j=i;j<len;j++){
if(nums[j]>nums[i-1]){
int temp=nums[j];
nums[j]=nums[i-1];
nums[i-1]=temp;
return;
}
}
}
}
Arrays.sort(nums);
return;
}