mirror of https://github.com/doocs/leetcode.git
24 lines
751 B
Java
24 lines
751 B
Java
class Solution {
|
|
public List<List<Integer>> subsetsWithDup(int[] nums) {
|
|
Arrays.sort(nums);
|
|
int n = nums.length;
|
|
List<List<Integer>> ans = new ArrayList<>();
|
|
for (int mask = 0; mask < 1 << n; ++mask) {
|
|
List<Integer> t = new ArrayList<>();
|
|
boolean ok = true;
|
|
for (int i = 0; i < n; ++i) {
|
|
if ((mask >> i & 1) == 1) {
|
|
if (i > 0 && (mask >> (i - 1) & 1) == 0 && nums[i] == nums[i - 1]) {
|
|
ok = false;
|
|
break;
|
|
}
|
|
t.add(nums[i]);
|
|
}
|
|
}
|
|
if (ok) {
|
|
ans.add(t);
|
|
}
|
|
}
|
|
return ans;
|
|
}
|
|
} |