Skip to content

Commit f66299c

Browse files
authored
Create 1481-least-number-of-unique-integers-after-k-removals.java
1 parent 32bb838 commit f66299c

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
public int findLeastNumOfUniqueInts(int[] arr, int k) {
3+
Map<Integer, Integer> freq = new HashMap<>();
4+
for (int num : arr) {
5+
freq.put(num, freq.getOrDefault(num, 0) + 1);
6+
}
7+
int[] freqList = new int[arr.length + 1];
8+
for (int f : freq.values()) {
9+
freqList[f] += 1;
10+
}
11+
12+
int res = freq.size();
13+
for (int f = 1; f < freqList.length; f++) {
14+
int remove = freqList[f];
15+
if (k >= f * remove) {
16+
k -= f * remove;
17+
res -= remove;
18+
} else {
19+
remove = k / f;
20+
res -= remove;
21+
break;
22+
}
23+
}
24+
return res;
25+
}
26+
}

0 commit comments

Comments
 (0)