题意:将一组数字进行全排列,找出x右边的值,若x已经是全排列后最大值,那么找出最小值。
class Solution {
public void nextPermutation(int[] nums) {
int len=nums.length;
if(nums==null||nums.length==1) return;
int tem=0;
boolean flag=false;
for(int i=len-1;i>=1;--i){
if(nums[i] > nums[i-1]){
Arrays.sort(nums,i,len);//左开右闭区间
flag=true;
for(int j=i;j<=len-1;++j){
if(nums[j] > nums[i-1]){//上面将i右边进行了小---大排序
tem=nums[i-1];//比较 i-1 和 i右边的值 寻找 i右边 比i-1大的值就行 找出一个即可 不然会变成最大值
nums[i-1]=nums[j];
nums[j]=tem;
return;
}
}
}
}
if(flag==false) Arrays.sort(nums);
return;
}
}