Maximum Subarray Min-Product LeetCode solution in JavaScript

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0