1. 题目

2. 思路
(1) 回溯
3. 代码
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
}
}
class Solution {
public ArrayList<ArrayList<Integer>> permute(int[] num) {
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
backtrack(num, 0, num.length, res);
return res;
}
public void backtrack(int[] num, int index, int n, ArrayList<ArrayList<Integer>> res) {
if (index == n) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(num[i]);
}
res.add(list);
return;
}
for (int i = index; i < n; i++) {
int temp = num[index];
num[index] = num[i];
num[i] = temp;
backtrack(num, index + 1, n, res);
temp = num[index];
num[index] = num[i];
num[i] = temp;
}
}
}