@@ -151,18 +151,21 @@ _Python3 code_ `(TLE)`
151151
152152``` python
153153import sys
154+
154155class Solution :
155- def maxSubArray (self , nums : List[int ]) -> int :
156- n = len (nums)
157- maxSum = - sys. maxsize
158- sum = 0
159- for i in range (n):
160- sum = 0
161- for j in range (i, n):
162- sum += nums[j]
163- maxSum = max (maxSum, sum )
164-
165- return maxSum
156+ def maxSubArray (self , nums : list[int ]) -> int :
157+ n = len (nums)
158+ maxSum = - sys. maxsize
159+ sum = 0
160+
161+ for i in range (n):
162+ sum = 0
163+
164+ for j in range (i, n):
165+ sum += nums[j]
166+ maxSum = max (maxSum, sum )
167+
168+ return maxSum
166169```
167170
168171_ Javascript code_ from [ ** @lucifer ** ] ( https://github.com/azl397985856 )
@@ -213,16 +216,16 @@ _Python3 code_
213216
214217``` python
215218class Solution :
216- def maxSubArray (self , nums : List [int ]) -> int :
217- n = len (nums)
218- maxSum = nums[0 ]
219- minSum = sum = 0
220- for i in range (n):
221- sum += nums[i]
222- maxSum = max (maxSum, sum - minSum)
223- minSum = min (minSum, sum )
224-
225- return maxSum
219+ def maxSubArray (self , nums : list [int ]) -> int :
220+ n = len (nums)
221+ maxSum = nums[0 ]
222+ minSum = sum = 0
223+ for i in range (n):
224+ sum += nums[i]
225+ maxSum = max (maxSum, sum - minSum)
226+ minSum = min (minSum, sum )
227+
228+ return maxSum
226229```
227230
228231_ Javascript code_ from [ ** @lucifer ** ] ( https://github.com/azl397985856 )
@@ -285,25 +288,31 @@ _Python3 code_
285288``` python
286289import sys
287290class Solution :
288- def maxSubArray (self , nums : List[int ]) -> int :
289- return self . helper(nums, 0 , len (nums) - 1 )
290- def helper (self , nums , l , r ):
291- if l > r:
292- return - sys. maxsize
293- mid = (l + r) // 2
294- left = self . helper(nums, l, mid - 1 )
295- right = self . helper(nums, mid + 1 , r)
296- left_suffix_max_sum = right_prefix_max_sum = 0
297- sum = 0
298- for i in reversed (range (l, mid)):
299- sum += nums[i]
300- left_suffix_max_sum = max (left_suffix_max_sum, sum )
301- sum = 0
302- for i in range (mid + 1 , r + 1 ):
303- sum += nums[i]
304- right_prefix_max_sum = max (right_prefix_max_sum, sum )
305- cross_max_sum = left_suffix_max_sum + right_prefix_max_sum + nums[mid]
306- return max (cross_max_sum, left, right)
291+ def maxSubArray (self , nums : list[int ]) -> int :
292+ return self . helper(nums, 0 , len (nums) - 1 )
293+
294+ def helper (self , nums , l , r ):
295+ if l > r:
296+ return - sys. maxsize
297+
298+ mid = (l + r) // 2
299+ left = self .helper(nums, l, mid - 1 )
300+ right = self .helper(nums, mid + 1 , r)
301+ left_suffix_max_sum = right_prefix_max_sum = 0
302+ sum = 0
303+
304+ for i in reversed (range (l, mid)):
305+ sum += nums[i]
306+ left_suffix_max_sum = max (left_suffix_max_sum, sum )
307+
308+ sum = 0
309+ for i in range (mid + 1 , r + 1 ):
310+ sum += nums[i]
311+ right_prefix_max_sum = max (right_prefix_max_sum, sum )
312+
313+ cross_max_sum = left_suffix_max_sum + right_prefix_max_sum + nums[mid]
314+
315+ return max (cross_max_sum, left, right)
307316```
308317
309318_ Javascript code_ from [ ** @lucifer ** ] ( https://github.com/azl397985856 )
@@ -359,14 +368,15 @@ _Python3 code_
359368
360369``` python
361370class Solution :
362- def maxSubArray (self , nums : List[int ]) -> int :
363- n = len (nums)
364- max_sum_ending_curr_index = max_sum = nums[0 ]
365- for i in range (1 , n):
366- max_sum_ending_curr_index = max (max_sum_ending_curr_index + nums[i], nums[i])
367- max_sum = max (max_sum_ending_curr_index, max_sum)
368-
369- return max_sum
371+ def maxSubArray (self , nums : list[int ]) -> int :
372+ n = len (nums)
373+ max_sum_ending_curr_index = max_sum = nums[0 ]
374+
375+ for i in range (1 , n):
376+ max_sum_ending_curr_index = max (max_sum_ending_curr_index + nums[i], nums[i])
377+ max_sum = max (max_sum_ending_curr_index, max_sum)
378+
379+ return max_sum
370380```
371381
372382_ Javascript code_ from [ ** @lucifer ** ] ( https://github.com/azl397985856 )
0 commit comments