Skip to content

Commit b3cd465

Browse files
committed
refactor: feat: 53. Maximum Subarray
1 parent 778ae3e commit b3cd465

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

maximum-subarray/gwbaik9717.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
// Time complexity: O(n)
2-
// Space complexity: O(n)
2+
// Space complexity: O(1)
33

44
/**
55
* @param {number[]} nums
66
* @return {number}
77
*/
88
var maxSubArray = function (nums) {
99
const n = nums.length;
10-
const dp = Array.from({ length: n + 1 }, () => Number.MIN_SAFE_INTEGER);
11-
dp[0] = 0;
10+
const dp = [0, 0];
11+
12+
let answer = Number.MIN_SAFE_INTEGER;
1213

1314
for (let i = 1; i <= n; i++) {
14-
dp[i] = Math.max(dp[i - 1] + nums[i - 1], nums[i - 1]);
15+
if (i % 2 !== 0) {
16+
dp[1] = Math.max(dp[0] + nums[i - 1], nums[i - 1]);
17+
answer = Math.max(answer, dp[1]);
18+
} else {
19+
dp[0] = Math.max(dp[1] + nums[i - 1], nums[i - 1]);
20+
answer = Math.max(answer, dp[0]);
21+
}
1522
}
1623

17-
return Math.max(...dp.slice(1));
24+
return answer;
1825
};

0 commit comments

Comments
 (0)