题目:
这道题我采用的是回溯法
代码:
class Solution {
//定义一个结果列表
private List<List<Integer>> res=new ArrayList<List<Integer>>();
public List<List<Integer>> permute(int[] nums) {
List<Integer> list=new ArrayList<Integer>();
List<Integer> num = new ArrayList ();
for(int i:nums)
num.add(i);
helpToPermute(num,list);
return res;
}
//用于递归
public void helpToPermute(List<Integer> nums,List<Integer> list){
if(nums.size()==0){
res.add(new ArrayList<Integer>(list));
}
int temp;
for(int i=0;i<nums.size();i++){
temp=nums.get(i);
list.add(nums.get(i));
nums.remove(i);
helpToPermute(nums,list);
nums.add(i,temp);
list.remove(list.size()-1);
}
}
}