Skip to content

Commit 94e3f50

Browse files
committed
feat(soobing): week3 > maximum-subarray
1 parent 53ce7c7 commit 94e3f50

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

โ€Žmaximum-subarray/soobing2.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/**
2+
* ๋ฌธ์ œ ์œ ํ˜•
3+
* - Array, DP
4+
*
5+
* ๋ฌธ์ œ ์„ค๋ช…
6+
* - ๋ฐฐ์—ด์—์„œ "์—ฐ์†๋œ" ๋ถ€๋ถ„ ๋ฐฐ์—ด์˜ ํ•ฉ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ
7+
*
8+
* ์•„์ด๋””์–ด
9+
* 1) Bottom-Up ๋ฐฉ์‹
10+
* - dp์—๋Š” ์•ž์—์„œ๋ถ€ํ„ฐ ์ด์–ด๋ถ™์ธ ๊ฐ’์ด ํฐ์ง€, ํ˜„์žฌ ๊ฐ’์—์„œ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š”๊ฒŒ ํด์ง€ ๋น„๊ตํ•˜์—ฌ ํฐ ๊ฐ’ ์ €์žฅ (ํ˜„์žฌ ๊ธฐ์ค€)
11+
* - maxSum์€ ์ „์ฒด dp์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ €์žฅ
12+
*/
13+
function maxSubArray(nums: number[]): number {
14+
const dp = new Array(nums.length);
15+
dp[0] = nums[0];
16+
let maxSum = nums[0];
17+
18+
for (let i = 1; i < nums.length; i++) {
19+
dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);
20+
maxSum = Math.max(maxSum, dp[i]);
21+
}
22+
return maxSum;
23+
}

0 commit comments

Comments
ย (0)