Least Number of Unique Integers after K Removals LeetCode solution in Java
1class Solution {2public int findLeastNumOfUniqueInts(int[] arr, int k) {3Map<Integer, Integer> freqMap = new HashMap<>();4for (int a : arr) freqMap.put(a, freqMap.getOrDefault(a, 0) + 1);5PriorityQueue<Integer> pq =6new PriorityQueue<>((i1, i2) -> Integer.compare(freqMap.get(i1), freqMap.get(i2)));7pq.addAll(freqMap.keySet());8while (k > 0 && !pq.isEmpty()) {9int element = pq.poll();10int toBeDeleted = Math.min(k, freqMap.get(element));11k -= toBeDeleted;12if (toBeDeleted < freqMap.get(element)) pq.add(element);13}14return pq.size();15}16}