Skip to content

Commit f92dbb5

Browse files
committed
add Maximum Subarray solution
1 parent 13a8ffe commit f92dbb5

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

maximum-subarray/HoonDongKang.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/**
2+
* [Problem]: [53] Maximum Subarray
3+
*
4+
* (https://leetcode.com/problems/maximum-subarray/description/)
5+
*/
6+
7+
function maxSubArray(nums: number[]): number {
8+
//시간복잡도 O(n)
9+
//공간복잡도 O(1)
10+
function getMax(nums: number[]): number {
11+
let result = nums[0];
12+
let sum = 0;
13+
14+
nums.forEach((num) => {
15+
sum = Math.max(num, sum + num);
16+
result = Math.max(sum, result);
17+
});
18+
19+
return result;
20+
}
21+
22+
//시간복잡도 O(n)
23+
//공간복잡도 O(1)
24+
function dpFunc(nums: number[]): number {
25+
const dp = Array(nums.length).fill(0);
26+
dp[0] = nums[0];
27+
28+
for (let i = 1; i < nums.length; i++) {
29+
dp[i] = Math.max(nums[i], dp[i - 1] + nums[i]);
30+
}
31+
32+
return Math.max(...dp);
33+
}
34+
35+
return dpFunc(nums);
36+
}

0 commit comments

Comments
 (0)