Skip to content

Commit e981dd6

Browse files
Sean PrashadSean Prashad
authored andcommitted
Update 47_Permutations_II.java
1 parent 4d18a9b commit e981dd6

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

Backtracking/47_Permutations_II.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,29 @@ public List<List<Integer>> permuteUnique(int[] nums) {
77
Arrays.sort(nums);
88

99
List<List<Integer>> result = new ArrayList<>();
10-
boolean[] usedElements = new boolean[nums.length];
11-
dfs(nums, usedElements, new ArrayList<>(), result);
10+
11+
helper(nums, result, new ArrayList<>(), new boolean[nums.length]);
1212
return result;
1313
}
1414

15-
private void dfs(int[] nums, boolean[] usedElements, List<Integer> tempResult, List<List<Integer>> result) {
16-
if (tempResult.size() == nums.length) {
17-
result.add(new ArrayList<>(tempResult));
15+
private void helper(int[] nums, List<List<Integer>> result, List<Integer> temp, boolean[] used) {
16+
if (temp.size() == nums.length) {
17+
result.add(new ArrayList<>(temp));
1818
return;
1919
}
2020

2121
for (int i = 0; i < nums.length; i++) {
22-
if (usedElements[i] || i > 0 && nums[i] == nums[i - 1] && !usedElements[i - 1]) {
22+
if (used[i] || i > 0 && nums[i] == nums[i - 1] && !used[i - 1]) {
2323
continue;
2424
}
25-
usedElements[i] = true;
26-
tempResult.add(nums[i]);
27-
dfs(nums, usedElements, tempResult, result);
28-
usedElements[i] = false;
29-
tempResult.remove(tempResult.size() - 1);
25+
26+
used[i] = true;
27+
temp.add(nums[i]);
28+
29+
helper(nums, result, temp, used);
30+
31+
used[i] = false;
32+
temp.remove(temp.size() - 1);
3033
}
3134
}
32-
}
35+
}

0 commit comments

Comments
 (0)