Maximum Subarray Sum with One Deletion LeetCode solution in JavaScript

1
/**
2
* @param {number[]} arr
3
* @return {number}
4
*/
5

6
// var maximumSum = function(arr) {
7
// const len = arr.length;
8
// const dp = new Array(len).fill(() => [null, null]);
9
// dp[0][0] = arr[0];
10
// dp[0][1] = 0;
11
// let result = arr[0];
12
// for(let i = 1; i < len; i++) {
13
// dp[i][1] = Math.max(dp[i-1][1] + arr[i], dp[i-1][0]);
14
// dp[i][0] = Math.max(dp[i-1][0] + arr[i], arr[i]);
15
// result = Math.max(result, Math.max(dp[i][0], dp[i][1]));
16
// }
17

18
// return result;
19
// };
20

21
// optimization
22
var maximumSum = function (arr) {
23
let noDelete = arr[0],
24
oneDelete = 0,
25
max = arr[0];
26
for (let i = 1; i < arr.length; i++) {
27
oneDelete = Math.max(oneDelete + arr[i], noDelete);
28
noDelete = Math.max(noDelete + arr[i], arr[i]);
29
max = Math.max(max, Math.max(noDelete, oneDelete));
30
}
31
return max;
32
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0