human
I found an interesting problem on https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals/:
Given an array of integers arr and an integer k. Find the least number of unique integers after removing exactly k elements.

 
Example 1:
Input: arr = [5,5,4], k = 1
Output: 1
Explanation: Remove the single 4, only 5 is left.

Example 2:
Input: arr = [4,3,1,1,3,3,2], k = 3
Output: 2
Explanation: Remove 4, 2 and either one of the two 1s or three 3s. 1 and 3 will be left.
 
Constraints:

1 <= arr.length <= 10^5
1 <= arr[i] <= 10^9
0 <= k <= arr.length

I tried it in Python, but could not do it. Can you solve it?

Write me a Python code to find the least number of unique integers after removing exactly k elements?
assistant
#Here is Python code to find the least number of unique integers after removing exactly k elements.

class Solution:
    def findLeastNumOfUniqueInts(self, arr: List[int], k: int) -> int:
        buckets = [[] for _ in range(len(arr) + 1)]
        counter = collections.Counter(arr)
        for key, count in counter.items():
            buckets[count].append(key)
        for count in range(len(arr) + 1):
            if k == 0: break
            while buckets[count] and k >= count:
                del counter[buckets[count].pop()]
                k -= count
        return len(counter)