Maximum Number of Eaten Apples LeetCode solution in JavaScript

1
var eatenApples = function (apples, days) {
2
const heap = new MinPriorityQueue({ priority: (x) => x[0] });
3
let totalApple = 0;
4

5
for (let i = 0; i < apples.length; i++) {
6
heap.enqueue([i + days[i], apples[i]]);
7

8
while (!heap.isEmpty()) {
9
const [expire, count] = heap.front().element;
10
if (!count || expire <= i) heap.dequeue();
11
else break;
12
}
13

14
if (heap.isEmpty()) continue;
15
totalApple++;
16
heap.front().element[1]--;
17
}
18

19
let i = apples.length;
20

21
while (!heap.isEmpty()) {
22
const [expire, count] = heap.dequeue().element;
23
if (!count || expire <= i) continue;
24
totalApple += Math.min(count, expire - i);
25
i = Math.min(expire, i + count);
26
}
27
return totalApple;
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0