牛客网题目链接
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/349df9229d81416a8cb667f5ac387ad4.png#pic_center)
题解
public class Quanpailie2 {
public ArrayList<ArrayList<Integer>> permute (int[] num) {
int []visit = new int[num.length];
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
dfs(result, num, visit, new ArrayList<Integer>());
return result;
}
private void dfs(ArrayList<ArrayList<Integer>> result, int[]nums, int []visit,
ArrayList<Integer> arrTemp) {
if (arrTemp.size() == nums.length) {
result.add(new ArrayList<>(arrTemp));
return;
}
for (int i = 0; i < nums.length; i++) {
if (visit[i] == 1) {
continue;
} else {
visit[i] = 1;
arrTemp.add(nums[i]);
dfs(result, nums, visit, arrTemp);
visit[i] = 0;
arrTemp.remove(arrTemp.size()-1);
}
}
}
}