Skip to content

Commit 9c5e9e5

Browse files
committed
- Maximum Subarray #275
1 parent bcd40b6 commit 9c5e9e5

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

maximum-subarray/ayosecu.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from typing import List
2+
3+
class Solution:
4+
"""
5+
- Time Complexity: O(n)
6+
- Space Complexity: O(1)
7+
"""
8+
def maxSubArray(self, nums: List[int]) -> int:
9+
max_sum = float("-inf")
10+
11+
curr_sum = 0
12+
for num in nums:
13+
curr_sum += num
14+
if curr_sum < num:
15+
# if current sum is less than current number
16+
# current sum is replaced with current number
17+
curr_sum = num
18+
max_sum = max(max_sum, curr_sum)
19+
20+
return max_sum
21+
22+
tc = [
23+
([-2,1,-3,4,-1,2,1,-5,4], 6),
24+
([1], 1),
25+
([5,4,-1,7,8], 23)
26+
]
27+
28+
for i, (nums, e) in enumerate(tc, 1):
29+
sol = Solution()
30+
r = sol.maxSubArray(nums)
31+
print(f"TC {i} is Passed!" if r == e else f"TC {i} is Failed! - Expected: {e}, Result: {r}")

0 commit comments

Comments
 (0)