forked from DaleStudy/leetcode-study
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathayosecu.py
More file actions
31 lines (26 loc) · 822 Bytes
/
ayosecu.py
File metadata and controls
31 lines (26 loc) · 822 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from typing import List
class Solution:
"""
- Time Complexity: O(n)
- Space Complexity: O(1)
"""
def maxSubArray(self, nums: List[int]) -> int:
max_sum = float("-inf")
curr_sum = 0
for num in nums:
curr_sum += num
if curr_sum < num:
# if current sum is less than current number
# current sum is replaced with current number
curr_sum = num
max_sum = max(max_sum, curr_sum)
return max_sum
tc = [
([-2,1,-3,4,-1,2,1,-5,4], 6),
([1], 1),
([5,4,-1,7,8], 23)
]
for i, (nums, e) in enumerate(tc, 1):
sol = Solution()
r = sol.maxSubArray(nums)
print(f"TC {i} is Passed!" if r == e else f"TC {i} is Failed! - Expected: {e}, Result: {r}")