Skip to content

Commit 09e54d4

Browse files
committed
maximum-subarray solution (py)
1 parent f3496fb commit 09e54d4

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

maximum-subarray/hi-rachel.py

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# 최대 부분 배열 합 문제
2+
3+
# O(n^2) time, O(1) space
4+
# Time Limit Exceeded
5+
6+
class Solution:
7+
def maxSubArray(self, nums: List[int]) -> int:
8+
max_total = nums[0]
9+
for i in range(len(nums)):
10+
total = 0
11+
for j in range(i, len(nums)):
12+
total += nums[j]
13+
max_total = max(total, max_total)
14+
return max_total
15+
16+
# 개선 풀이
17+
# O(n) time, O(1) space
18+
class Solution:
19+
def maxSubArray(self, nums: List[int]) -> int:
20+
max_total = nums[0]
21+
total = nums[0]
22+
for i in range(1, len(nums)):
23+
total = max(nums[i], total + nums[i])
24+
max_total = max(total, max_total)
25+
return max_total
26+
27+
# DP 풀이
28+
# O(n) time, O(n) space
29+
class Solution:
30+
def maxSubArray(self, nums: List[int]) -> int:
31+
dp = [0] * len(nums)
32+
dp[0] = nums[0]
33+
for i in range(1, len(nums)):
34+
dp[i] = max(nums[i], dp[i - 1] + nums[i])
35+
return max(dp)
36+

0 commit comments

Comments
 (0)