Skip to content

Commit 4169b14

Browse files
Create The Number of Beautiful Subsets.java
1 parent a381278 commit 4169b14

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

The Number of Beautiful Subsets.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public int beautifulSubsets(int[] nums, int k) {
3+
4+
Map<Integer, Integer> m = new HashMap<>();
5+
6+
for (int num : nums) m.put(num, m.getOrDefault(num, 0) + 1);
7+
8+
int res = 1, prev = 0, prevPrev = 0;
9+
10+
for (Map.Entry<Integer, Integer> e : m.entrySet()) {
11+
int cur = e.getKey();
12+
13+
if (m.containsKey(cur - k)) continue;
14+
15+
prev = 0;
16+
17+
while (m.containsKey(cur)) {
18+
prevPrev = prev;
19+
prev = ((1 << m.get(cur)) - 1) * res;
20+
res += prevPrev;
21+
cur += k;
22+
}
23+
res += prev;
24+
}
25+
return res - 1;
26+
}
27+
}

0 commit comments

Comments
 (0)