Skip to content

Commit 45fdd19

Browse files
authored
Create 1851-minimum-interval-to-include-each-query.js
1 parent e863fa4 commit 45fdd19

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @param {number[][]} intervals
3+
* @param {number[]} queries
4+
* @return {number[]}
5+
*/
6+
var minInterval = function(intervals, queries) {
7+
intervals.sort((a, b) => a[0] - b[0]);
8+
const queriesSorted = [ ...queries ].sort((a, b) => a - b);
9+
const minHeap = new MinPriorityQueue();
10+
const output = {};
11+
let i = 0;
12+
13+
for (const query of queriesSorted) {
14+
while (i < intervals.length && intervals[i][0] <= query) {
15+
const [ start, end ] = intervals[i];
16+
const length = end - start + 1;
17+
// Use length as the priority in the heap.
18+
minHeap.enqueue([ length, end ], length);
19+
i++;
20+
}
21+
22+
while (!minHeap.isEmpty() && minHeap.front().element[1] < query) {
23+
minHeap.dequeue();
24+
}
25+
26+
output[query] = (!minHeap.isEmpty()) ? minHeap.front().element[0] : -1;
27+
}
28+
29+
return queries.map((query) => output[query]);
30+
};

0 commit comments

Comments
 (0)