Skip to content

Commit 2423497

Browse files
committed
maximum-product-subarray solution & complexity
1 parent b55cdae commit 2423497

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""
2+
/ํ’€์ด ๋ด๋„ ์ž˜ ์ดํ•ด ๋ชปํ•ด์„œ ์ถ”๊ฐ€ ์ฝ”๋ฉ˜ํŠธ/
3+
nums[i]๊ฐ€ ๊ทธ ์ „๊นŒ์ง€ subarray์˜ ํ•ฉ total๋ณด๋‹ค ์ž‘์€ ์Œ์ˆ˜์ธ ์ผ€์ด์Šค๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋Š”๊ฑฐ์ง€ ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ
4+
ex) total : -1, nums[i] = -2
5+
์–ด์ฐจํ”ผ -1์ธ ์‹œ์ ์— maxTotal์ด ์—…๋ฐ์ดํŠธ ๋์œผ๋ฏ€๋กœ total์€ nums[i]๋ถ€ํ„ฐ ๋”ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ -2๋กœ ์„ค์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์Œ
6+
๋”ฐ๋ผ์„œ ์ด์ „๊นŒ์ง€ subarray์˜ ํ•ฉ๋งŒ ์Œ์ˆ˜ ์–‘์ˆ˜ ์ฒดํฌ
7+
8+
TC : for๋ฌธ ํ•œ๋ฒˆ
9+
=> O(N)
10+
SC : ์ถ”๊ฐ€์ ์ธ ๋ฐฐ์—ด ๋“ฑ ๋ฉ”๋ชจ๋ฆฌ ์“ฐ์ง€ ์•Š์œผ๋ฏ€๋กœ
11+
=> O(1)
12+
"""
13+
class Solution:
14+
def maxSubArray(self, nums: List[int]) -> int:
15+
total = nums[0]
16+
maxTotal = nums[0]
17+
for i in range(1, len(nums)) :
18+
if (total < 0) :
19+
total = nums[i]
20+
else :
21+
total += nums[i]
22+
maxTotal = max(total, maxTotal)
23+
return (maxTotal)

0 commit comments

Comments
ย (0)