给定一组数字,返回所有可能的排列。
例如,
[1,2,3]有以下排列:
[1,2,3]、[1,3,2]、[2,1,3]、[2,3,1]、[3,1,2]和[3,2,1]。
用dfs,多熟悉ArrayList的用法
import java.util.*;
public class Solution {
ArrayList<ArrayList<Integer>> res;
public ArrayList<ArrayList<Integer>> permute(int[] num) {
res = new ArrayList<ArrayList<Integer>>();
if(num.length==0) return res;
int len = num.length;
ArrayList<Integer> list = new ArrayList<Integer>();
dfs(num,len,list);
return res;
}
public void dfs(int[] num,int len,ArrayList<Integer> list){
if(list.size()==len){
// res.add(list);
res.add(new ArrayList<Integer>(list));.//注意这里要重新创建空间
return ;
}
for(int i=0;i<len;i++){
if(!list.contains(num[i])){
list.add(num[i]);
dfs(num,len,list);
list.remove(list.size()-1);
}
}
}
}