1
var smallestRange = function (nums) {
2
let minHeap = new MinPriorityQueue({
3
compare: (a, b) => a[0] - b[0],
4
});
5
let start = 0,
6
end = Infinity;
7
let maxSoFar = -Infinity;
8

9
for (let num of nums) {
10
minHeap.enqueue([num[0], 0, num]);
11
maxSoFar = Math.max(maxSoFar, num[0]);
12
}
13

14
while (minHeap.size() == nums.length) {
15
let [num, i, list] = minHeap.dequeue();
16

17
if (end - start > maxSoFar - num) {
18
start = num;
19
end = maxSoFar;
20
}
21

22
if (list.length > i + 1) {
23
minHeap.enqueue([list[i + 1], i + 1, list]);
24
maxSoFar = Math.max(maxSoFar, list[i + 1]);
25
}
26
}
27

28
return [start, end];
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0