Least Number of Unique Integers after K Removals LeetCode solution in JavaScript

1
var findLeastNumOfUniqueInts = function (arr, k) {
2
var hsh = {};
3
var instance = {}; // store set with index # of occurence
4
var count = 0;
5
for (var i = 0; i < arr.length; i++) {
6
if (hsh[arr[i]] == null) {
7
count++;
8
hsh[arr[i]] = 1;
9
if (instance[1] == null) {
10
var intro = new Set();
11
intro.add(arr[i]);
12
instance[1] = intro;
13
} else {
14
instance[1].add(arr[i]);
15
}
16
} else {
17
hsh[arr[i]]++;
18
var numTimes = hsh[arr[i]];
19
instance[numTimes - 1].delete(arr[i]);
20

21
if (instance[numTimes] == null) {
22
instance[numTimes] = new Set();
23
instance[numTimes].add(arr[i]);
24
} else {
25
instance[numTimes].add(arr[i]);
26
}
27
}
28
}
29

30
var removenum = 0;
31

32
for (key in instance) {
33
var instanceKey = instance[key].size;
34
if (k == 0) {
35
break;
36
} else if (k >= key * instanceKey) {
37
k -= key * instanceKey;
38
count -= instanceKey;
39
} else {
40
count -= Math.floor(k / key);
41
break;
42
}
43
}
44
return count;
45
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0