Eliminate Maximum Number of Monsters LeetCode solution in JavaScript

1
/**
2
* @param {number[]} dist
3
* @param {number[]} speed
4
* @return {number}
5
*/
6
var eliminateMaximum = function (dist, speed) {
7
let res = 0;
8
let len = dist.length;
9
let map = new Map();
10
for (let i = 0; i < len; i++) {
11
// the last time to eliminate
12
let a = Math.ceil(dist[i] / speed[i]);
13
if (map.has(a)) {
14
let c = map.get(a);
15
c++;
16
map.set(a, c);
17
} else {
18
map.set(a, 1);
19
}
20
}
21

22
let keys = Array.from(map.keys());
23
keys.sort((a, b) => a - b);
24
// time to eliminate
25
let t = 0;
26
for (let i = 0; i < keys.length; i++) {
27
let c = map.get(keys[i]);
28
if (c > keys[i] - t) {
29
res += keys[i] - t;
30
break;
31
} else {
32
res += c;
33
t += c;
34
}
35
}
36

37
return res;
38
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0