Skip to content

Commit c0e3c8b

Browse files
Duplicates in subsets
1 parent b097874 commit c0e3c8b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

Arrays/SubsetDup.java

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//duplicate elements' subset eg [1,2,2]
2+
static List<List<Integer>> subsetDuplicate(int[] arr) {
3+
Arrays.sort(arr);
4+
List<List<Integer>> outer = new ArrayList<>();
5+
outer.add(new ArrayList<>());
6+
int start = 0;
7+
int end = 0;
8+
for (int i = 0; i < arr.length; i++) {
9+
start = 0;
10+
// if current and previous element is same, s = e + 1
11+
if (i > 0 && arr[i] == arr[i-1]) {
12+
start = end + 1;
13+
}
14+
end = outer.size() - 1;
15+
int n = outer.size();
16+
for (int j = start; j < n; j++) {
17+
List<Integer> internal = new ArrayList<>(outer.get(j));
18+
internal.add(arr[i]);
19+
outer.add(internal);
20+
}
21+
}
22+
return outer;
23+
}

0 commit comments

Comments
 (0)