1
/**
2
* @param {number[]} nums
3
* @return {number}
4
*/
5
var partitionDisjoint = function (nums) {
6
let n = nums.length;
7
let leftMax = Array(n).fill(0),
8
rightMin = Array(n).fill(0);
9
let left = 0,
10
right = n - 1;
11

12
for (let i = 0, j = n - 1; i < n, j >= 0; i++, j--) {
13
leftMax[i] = Math.max(nums[i], !i ? -Infinity : leftMax[i - 1]);
14
rightMin[j] = Math.min(nums[j], j === n - 1 ? Infinity : rightMin[j + 1]);
15
}
16

17
for (let i = 0; i < n - 1; i++) {
18
if (leftMax[i] <= rightMin[i + 1]) {
19
return i + 1;
20
}
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0