Skip to content

Commit d433b66

Browse files
committed
[7th batch] week 3 - maximum subarray
1 parent 49c729d commit d433b66

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# 7๊ธฐ ํ’€์ด
2+
# ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
3+
# - nums์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— nums์˜ ๊ธธ์ด์— ๊ด€๋ จ๋˜์–ด ์žˆ์Œ
4+
# ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
5+
# - ๋ณ€์ˆ˜ ์ด์™ธ์— ๊ฐ์ฒด๋ฅผ ์“ฐ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฐ„ ๋ณต์žก๋„๋Š” O(1)์ด๋‹ค(input ๊ธธ์ด์™€ ์ƒ๊ด€ ์—†์Œ)
6+
class Solution:
7+
def maxSubArray(self, nums: List[int]) -> int:
8+
curr_sum = nums[0]
9+
max_sum = nums[0]
10+
11+
for i in range(1, len(nums)):
12+
# 1. (ํ˜„์žฌ๊นŒ์ง€์˜ ํ•ฉ๊ณผ i์˜ ์š”์†Œ๋ฅผ ๋”ํ•œ ๊ฐ’)๊ณผ i์˜ ์š”์†Œ๋ฅผ ์„œ๋กœ ๋น„๊ตํ•˜์—ฌ ์ง€๊ธˆ๊นŒ์ง€์˜ ํ•ฉ์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.
13+
# - ์ž๊ธฐ ์ž์‹ ๋งŒ์œผ๋กœ๋„ ์ด์ „ ํ•ฉ๋“ค๋ณด๋‹ค ํฌ๋‹ค๋ฉด ์ด์ „ ํ•ฉ๋“ค์€ ์˜๋ฏธ๊ฐ€ ์—†์–ด์ง์„ ์–˜๊ธฐ
14+
curr_sum = max(nums[i], curr_sum + nums[i])
15+
16+
# ํ˜„์žฌ๊นŒ์ง€์˜ ํ•ฉ๊ณผ ์ด์ „ max ํ•ฉ์„ ๋น„๊ตํ•˜์—ฌ ์—…๋ฐ์ดํŠธ
17+
max_sum = max(max_sum, curr_sum)
18+
19+
return max_sum

0 commit comments

Comments
ย (0)