Skip to content

Commit beba7eb

Browse files
committed
feat: maximum-subarray
1 parent 629deff commit beba7eb

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

maximum-subarray/choidabom.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// https://leetcode.com/problems/maximum-subarray/
2+
3+
// Time Limit Exceeded
4+
function maxSubArray(nums: number[]): number {
5+
const acc = []
6+
const len = nums.length
7+
8+
for (let size = 1; size <= len; size++) {
9+
for (let start = 0; start <= len - size; start++) {
10+
const sub = nums.slice(start, start + size)
11+
const sum = sub.reduce((acc, num)=> acc += num, 0)
12+
acc.push(sum)
13+
}
14+
}
15+
16+
return acc.sort((a, b) => b - a)[0]
17+
};
18+
19+
// TC: O(n)
20+
// SC: O(n)
21+
22+
function maxSubArray(nums: number[]): number {
23+
const dp = [...nums];
24+
let max = dp[0];
25+
26+
for (let i = 1; i < nums.length; i++) {
27+
dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);
28+
max = Math.max(max, dp[i]);
29+
}
30+
31+
return max;
32+
}

0 commit comments

Comments
 (0)