Find the Longest Valid Obstacle Course at Each Position LeetCode solution in JavaScript

1
var longestObstacleCourseAtEachPosition = function (obstacles) {
2
var n = obstacles.length;
3
var lis = [];
4
var res = new Array(n).fill(0);
5
for (var i = 0; i < n; i++) {
6
if (lis.length > 0 && obstacles[i] >= lis[lis.length - 1]) {
7
lis.push(obstacles[i]);
8
res[i] = lis.length;
9
} else {
10
// find the upper bound
11
var l = 0;
12
var r = lis.length;
13
while (l <= r) {
14
var mid = Math.floor((l + r) / 2);
15
if (lis[mid] <= obstacles[i]) {
16
l = mid + 1;
17
} else {
18
r = mid - 1;
19
}
20
}
21
lis[l] = obstacles[i];
22
res[i] = l + 1;
23
}
24
}
25
return res;
26
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0