LeetCode #53 Maximum Subarray
题目
解题方法
这道题使用贪心算法的思想可以设计出O(n)的算法,遍历数组进行累加,如果累加值小于0,就把当前位置的值作为新的累加值,否则就把当前位置的值加到累加值里面,取每次累加之后结果的最大值即可。
代码
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
subsum = 0
ret = -2147483647
for i in range(len(nums)):
if subsum < 0:
subsum = nums[i]
else:
subsum += nums[i]
ret = max(ret, subsum)
return ret