Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
1481 Least Number of Unique Integers after K Removals
  • Loading branch information
fayez-baig authored Jun 26, 2022
commit 6fbc803ac54599e73bf4697df59139ef06707190
41 changes: 41 additions & 0 deletions 1481-least-number-of-unique-integers-after k-removals.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// 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


const findLeastNumOfUniqueInts = function (arr, k) {
const map = {}

for (const num of arr) {
map[num] = map[num] || 0
map[num] += 1
}
const keys = Object.keys(map).sort((a, b) => map[a] - map[b])
for (const key of keys) {
while (map[key] > 0 && k > 0) {
k--
map[key] -= 1
if (map[key] === 0) {
delete map[key]
}
}
}
return Object.keys(map).length
}