Skip to content

Commit 546e65b

Browse files
committed
Permutations II
1 parent e82978d commit 546e65b

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package Review_2024;
2+
3+
import java.util.List;
4+
import java.util.Arrays;
5+
import java.util.ArrayList;
6+
7+
public class PermutationsII {
8+
9+
public List<List<Integer>> permuteUnique(int[] nums) {
10+
List<List<Integer>> result = new ArrayList<>();
11+
Arrays.sort(nums);
12+
boolean[] used = new boolean[nums.length];
13+
backtrack(nums, new ArrayList<>(), used, result);
14+
return result;
15+
}
16+
17+
private void backtrack(int[] nums, List<Integer> current, boolean[] used, List<List<Integer>> result) {
18+
if (current.size() == nums.length) {
19+
result.add(new ArrayList<>(current));
20+
return;
21+
}
22+
23+
for (int i = 0; i < nums.length; i++) {
24+
if (used[i] || (i > 0 && nums[i] == nums[i - 1] && !used[i - 1])) {
25+
continue;
26+
}
27+
current.add(nums[i]);
28+
used[i] = true;
29+
backtrack(nums, current, used, result);
30+
31+
current.remove(current.size() - 1);
32+
used[i] = false;
33+
}
34+
}
35+
}

0 commit comments

Comments
 (0)