-
Notifications
You must be signed in to change notification settings - Fork 481
/
Copy path0918.py
35 lines (28 loc) · 821 Bytes
/
0918.py
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
32
33
34
35
class Solution:
def maxSubarraySumCircular(self, A):
"""
:type A: List[int]
:rtype: int
"""
cur_max = 0
result_max = 0
for num in A:
cur_max += num
if cur_max <= 0:
cur_max = 0
if result_max < cur_max:
result_max = cur_max
if result_max == 0:
return max(A)
cur_min = 0
result_min = 0
for num in A:
cur_min += num
if cur_min >= 0:
cur_min = 0
if result_min > cur_min:
result_min = cur_min
return max(result_max, sum(A) - result_min)
if __name__ == "__main__":
A = [-2, -3, -1]
print(Solution().maxSubarraySumCircular(A))