(List<List<Integer>> res,
int[] nums,
List<Integer> path,
boolean[] visited)
| 8 | } |
| 9 | |
| 10 | public void backtrack(List<List<Integer>> res, |
| 11 | int[] nums, |
| 12 | List<Integer> path, |
| 13 | boolean[] visited) { |
| 14 | if (path.size() == nums.length) { |
| 15 | res.add(new ArrayList<>(path)); |
| 16 | return; |
| 17 | } |
| 18 | |
| 19 | for (int i = 0; i < nums.length; i++) { |
| 20 | if (visited[i] || |
| 21 | (i > 0 && nums[i - 1] == nums[i] && visited[i - 1])) |
| 22 | continue; |
| 23 | |
| 24 | visited[i] = true; |
| 25 | path.add(nums[i]); |
| 26 | |
| 27 | backtrack(res, nums, path, visited); |
| 28 | |
| 29 | visited[i] = false; |
| 30 | path.remove(path.size() - 1); |
| 31 | } |
| 32 | } |
| 33 | } |
no test coverage detected