题目
思路
DFS
参考代码
import java.util.*;
public class Solution {
public ArrayList<ArrayList<Integer>> permute (int[] num) {
ArrayList<ArrayList<Integer>> ans = new ArrayList<>();
dfs(num,0,ans);
return ans;
}
public void dfs(int[] arr,int i, ArrayList<ArrayList<Integer>> ans ){
if(i==arr.length){
ArrayList<Integer> t = new ArrayList<>();
for(int v: arr) t.add(v);
ans.add(t);
}else{
for(int idx=i;idx<arr.length;idx++){
swap(arr,idx,i);
dfs(arr,i+1,ans);
swap(arr,idx,i);
}
}
}
public void swap(int[] arr,int i,int j){
int t = arr[i];
arr[i] =arr[j];
arr[j] = t;
}
}