public ArrayList<ArrayList<Integer>> permute(int[] num) {
ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
if(num==null || num.length==0) return res;
ArrayList<Integer> t = new ArrayList<Integer>();
t.add(num[0]);
res.add(t);
for(int i=1;i<num.length;i++){
res = helper(res,num[i]);
}
return res;
}
public ArrayList<ArrayList<Integer>> helper(ArrayList<ArrayList<Integer>> res, int k){
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
for(int i=0;i<res.size();i++){
for(int j=0; j<= res.get(i).size(); j++){
ArrayList<Integer> item = new ArrayList<Integer>(res.get(i));
item.add(j, k);
list.add(item);
}
}
return list;
}
1) 插入法
2) 不需要删除什么