回溯算法
自己写不出来,先理解别人答案的基础上,自己敲出来
import java.util.*;
public class Solution {
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
public ArrayList<ArrayList<Integer>> permute(int[] num) {
LinkedList<Integer> list = new LinkedList<>();
backTrack(num,list);
return res;
}
public void backTrack(int[] num,LinkedList<Integer> list){
if(list.size()==num.length){
res.add(new ArrayList<>(list));
return;
}
for(int i=0;i<num.length;i++){
if(list.contains(num[i]))
continue;
list.add(num[i]);
backTrack(num,list);
list.removeLast();
}
}
}