Least Number of Unique Integers after K Removals
MediumArrayHash TableGreedySortingCounting
Solution
export function findLeastNumOfUniqueInts(arr: number[], k: number): number {
const counter = new Map<number, number>();
for (const num of arr) {
counter.set(num, (counter.get(num) ?? 0) + 1);
}
const counts = [...counter.values()].sort((a, b) => a - b);
let remainRemovals = k;
let remainNumber = counts.length;
for (const count of counts) {
remainRemovals -= count;
if (remainRemovals < 0) {
return remainNumber;
}
remainNumber -= 1;
}
return 0;
}