给定一个不含重复数字的整数数组 nums
,返回其 所有可能的全排列 。可以 按任意顺序 返回答案。
示例 1:
输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[
class Solution {
public List<List<Integer>> permute(int[] nums) {
List<List<Integer>> res = new ArrayList<>();
List<Integer> numslist = new ArrayList<>();
for(int num:nums){
numslist.add(num);
}
int len = nums.length;
dfs(len,numslist,res,0);
return res;
}
public void dfs(Integer len,List<Integer> numslist,List<List<Integer>> res,Integer pre){
if(pre == len){
res.add(new ArrayList<>(numslist));
}
for(int i=pre;i<len;i++){
Collections.swap(numslist,pre,i);
dfs(len,numslist,res,pre+1);
Collections.swap(numslist,pre,i);
}
}
}
2,3,1],[3,1,2],[3,2,1]]