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的初始化定义以及排序