Skip to content

Commit b890cda

Browse files
refactor 918 python solution
1 parent 7aecd20 commit b890cda

File tree

1 file changed

+25
-25
lines changed
  • src/0918-Maximum-Sum-Circular-Subarray

1 file changed

+25
-25
lines changed

src/0918-Maximum-Sum-Circular-Subarray/0918.py

+25-25
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
class Solution:
2-
def maxSubarraySumCircular(self, a):
2+
def maxSubarraySumCircular(self, A):
33
"""
44
:type A: List[int]
55
:rtype: int
6-
"""
7-
def kadane(nums):
8-
cur, result = 0, 0
9-
for num in nums:
10-
cur += num
11-
if cur < 0:
12-
cur = 0
13-
if result < cur:
14-
result = cur
15-
return result
16-
17-
max_a = max(a)
18-
if max_a < 0:
19-
return max_a
20-
21-
len_a = len(a)
22-
result1 = kadane(a)
23-
result2 = 0
24-
for i in range(len_a):
25-
result2 += a[i]
26-
a[i] = -a[i]
27-
28-
result2 += kadane(a)
6+
"""
7+
cur_max = 0
8+
result_max = 0
299

30-
return max(result1, result2)
10+
for num in A:
11+
cur_max += num
12+
if cur_max <= 0:
13+
cur_max = 0
14+
if result_max < cur_max:
15+
result_max = cur_max
16+
17+
if result_max == 0:
18+
return max(A)
19+
20+
cur_min = 0
21+
result_min = 0
22+
23+
for num in A:
24+
cur_min += num
25+
if cur_min >= 0:
26+
cur_min = 0
27+
if result_min > cur_min:
28+
result_min = cur_min
29+
30+
return max(result_max, sum(A) - result_min)
3131

3232

3333
if __name__ == "__main__":

0 commit comments

Comments
 (0)