1/**2* @param {number[]} nums3* @return {number}4*/5var partitionDisjoint = function (nums) {6let n = nums.length;7let leftMax = Array(n).fill(0),8rightMin = Array(n).fill(0);9let left = 0,10right = n - 1;1112for (let i = 0, j = n - 1; i < n, j >= 0; i++, j--) {13leftMax[i] = Math.max(nums[i], !i ? -Infinity : leftMax[i - 1]);14rightMin[j] = Math.min(nums[j], j === n - 1 ? Infinity : rightMin[j + 1]);15}1617for (let i = 0; i < n - 1; i++) {18if (leftMax[i] <= rightMin[i + 1]) {19return i + 1;20}21}22};