R8-技巧篇
最近速成java中,算法基础需要兼顾。

 
 
class Solution {
    public void nextPermutation(int[] nums) {
         int len=nums.length;
         List<Integer>list = new ArrayList<>();
         boolean flag=true;
         for (int i=len-1;i>=0;i--){
            list.add(nums[i]);
            Collections.sort(list);
            if (list.size()>0&&list.get(list.size()-1)>nums[i]){
                int id=list.size()-1;
                while(id>=0&&list.get(id)>nums[i]){
                    id--;
                }
                nums[i]=list.get(id+1);
                list.remove(id+1);
                for (int j=i+1;j<len;j++){
                    nums[j]=list.get(0);
                    list.remove(0);
                }
                flag=false;
            }
            if (!flag) break;
         }
         if (flag)Arrays.sort(nums);
    }
}
ps:
java语法
List<Integer>list = new ArrayList<>();
list.add(nums[i]);
Collections.sort(list);list的初始化定义以及排序



















