2024-02-16 Daily Challenge
Today I have done leetcode's February LeetCoding Challenge with cpp
.
February LeetCoding Challenge 16
Description
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
Solution
auto speedup = [](){
cin.tie(nullptr);
cout.tie(nullptr);
ios::sync_with_stdio(false);
return 0;
}();
class Solution {
public:
int findLeastNumOfUniqueInts(vector<int>& arr, int k) {
map<int, int> count, ccount;
for(auto i : arr) {
count[i] += 1;
}
for(auto [_, c] : count) {
ccount[c] += 1;
}
int answer = count.size();
for(auto [count, times] : ccount) {
if(k > count * times) {
k -= count * times;
answer -= times;
} else {
answer -= k / count;
break;
}
}
return answer;
}
};
// Accepted
// 43/43 cases passed (154 ms)
// Your runtime beats 50.87 % of cpp submissions
// Your memory usage beats 81 % of cpp submissions (63.1 MB)