Given a collection of distinct integers, return all possible permutations.
Example:
Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
暴力解法
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> ret = new ArrayList();
List<Integer> numList = new ArrayList();
int length = nums.length;
for(int num:nums){
numList.add(num);
}
int[] newInt = new int[length];
add(ret,numList,0,newInt);
return ret;
}
public void add(List<List<Integer>> ret,List<Integer> numList,int length,int[] newInt){
if(numList.size()==0){
List<Integer> add = new ArrayList();
for(int num:newInt){
add.add(num);
}
ret.add(add);
}else{
for(int i = numList.size()-1;i>=0;i--) {
newInt[length] = numList.get(i);
numList.remove(i);
add(ret,numList,length+1,newInt);
numList.add(i,newInt[length]);
}
}
}
