Maximum Subarray Min-Product LeetCode solution in JavaScript
1var maxSumMinProduct = function (nums) {2var mod = BigInt(1000000007);3var n = nums.length;4var max = 0n;5if (n === 1) {6return (nums[0] * nums[0]) % mod;7}8var sum = new Array(n + 1).fill(0);9for (var i = 1; i <= n; i++) {10sum[i] = sum[i - 1] + nums[i - 1];11}12for (var i = 0; i < n; i++) {13var l = i - 1;14var r = i + 1;15while (l >= 0 && nums[l] >= nums[i]) {16l--;17}18l++;19while (r < n && nums[r] >= nums[i]) {20r++;21}22r--;23var s = BigInt(sum[r + 1] - sum[l]);24var factor = BigInt(nums[i]);25var prod = s * factor;26if (prod > max) {27max = prod;28}29}30return Number(max % mod);31};