1
class Solution {
2
List<List<Integer>> res = new LinkedList<>();
3

4
public List<List<Integer>> permute(int[] nums) {
5
ArrayList<Integer> list = new ArrayList<>();
6
boolean[] visited = new boolean[nums.length];
7

8
backTrack(nums, list, visited);
9
return res;
10
}
11

12
private void backTrack(int[] nums, ArrayList<Integer> list, boolean[] visited) {
13
if (list.size() == nums.length) {
14
res.add(new ArrayList(list));
15
return;
16
}
17
for (int i = 0; i < nums.length; i++) {
18
if (!visited[i]) {
19
visited[i] = true;
20
list.add(nums[i]);
21
backTrack(nums, list, visited);
22
visited[i] = false;
23
list.remove(list.size() - 1);
24
}
25
}
26
}
27
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0