Maximum Width Ramp LeetCode solution in JavaScript

1
var maxWidthRamp = function (nums) {
2
let stack = [],
3
ans = 0;
4
for (let i = 0; i < nums.length; i++) {
5
let index = lower_bound(stack, i);
6
ans = Math.max(ans, i - index);
7
if (!stack.length || nums[i] < nums[stack[stack.length - 1]]) stack.push(i);
8
}
9
return ans;
10

11
function lower_bound(arr, index) {
12
if (!arr.length) return index;
13
let low = 0,
14
high = arr.length - 1;
15
while (low < high) {
16
let mid = Math.floor((low + high) / 2);
17
if (nums[arr[mid]] <= nums[index]) high = mid;
18
else low = mid + 1;
19
}
20
return nums[arr[low]] <= nums[index] ? arr[low] : index;
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0