Skip to content

Commit c89cbbc

Browse files
authored
Create 1481-least-number-of-unique-integers-after-k-removals.js
1 parent db64a15 commit c89cbbc

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/**
2+
* Sorting
3+
* Time O(n*log(n)) | Space O(n)
4+
* https://leetcode.com/problems/least-number-of-unique-integers-after-k-removals/
5+
* @param {number[]} arr
6+
* @param {number} k
7+
* @return {number}
8+
*/
9+
var findLeastNumOfUniqueInts = function(arr, k) {
10+
11+
const frequencies = {}
12+
13+
for(let i = 0; i < arr.length; i++) {
14+
frequencies[arr[i]] = (frequencies[arr[i]] && frequencies[arr[i]] + 1) || 1;
15+
}
16+
17+
const frequenciesArr = Object.entries(frequencies);
18+
19+
frequenciesArr.sort((a,b) => a[1] - b[1]);
20+
frequenciesArr.reverse();
21+
22+
while(k) {
23+
const lastEl = frequenciesArr[frequenciesArr.length - 1];
24+
while(lastEl[1]) {
25+
if(!k) return frequenciesArr.length;
26+
lastEl[1] -= 1;
27+
k--;
28+
}
29+
frequenciesArr.pop();
30+
}
31+
32+
return frequenciesArr.length;
33+
};

0 commit comments

Comments
 (0)