# Solving Leetcode Interviews in Seconds with AI: Least Number of Unique Integers after K Removals


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "1481" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

	# Problem Statement
	> 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 

	# Explanation
	Here's the breakdown of the solution:

*   **Frequency Counting:** Count the frequency of each number in the input array.
*   **Greedy Removal:** Sort the frequencies in ascending order. Greedily remove elements with the lowest frequencies until `k` elements have been removed.
*   **Count Remaining Unique:** Count the number of unique integers remaining after the removals.

*   **Runtime Complexity:** O(n log n), where n is the length of the input array (due to sorting). **Storage Complexity:** O(n) (to store the frequencies).

	
	# Code
	```python
	from collections import Counter

def find_least_num_of_unique_ints(arr, k):
    """
    Finds the least number of unique integers after removing exactly k elements.

    Args:
        arr: A list of integers.
        k: The number of elements to remove.

    Returns:
        The least number of unique integers after removing k elements.
    """

    counts = Counter(arr)
    frequencies = sorted(counts.values())
    
    removed_count = 0
    unique_count = len(frequencies)
    
    for freq in frequencies:
        if removed_count + freq <= k:
            removed_count += freq
            unique_count -= 1
        else:
            break
            
    return unique_count
	```
			
