Find Right Interval LeetCode solution in JavaScript

1
var findRightInterval = function (intervals) {
2
const data = intervals
3
.map((interval, i) => ({ interval, i }))
4
.sort((a, b) => a.interval[0] - b.interval[0]);
5

6
const res = Array(intervals.length).fill(-1);
7

8
for (let pos = 0; pos < data.length; pos++) {
9
let left = pos;
10
let right = data.length - 1;
11

12
while (left <= right) {
13
const mid = Math.floor((left + right) / 2);
14

15
if (data[pos].interval[1] <= data[mid].interval[0]) {
16
right = mid - 1;
17
} else {
18
left = mid + 1;
19
}
20
}
21

22
if (left < data.length) {
23
res[data[pos].i] = data[left].i;
24
}
25
}
26

27
return res;
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0