algorithm notes: leetcode#53 maximum subarray

Problem


Analysis


Solution


1
2
3
4
5
6
7
8
9
10
11
class (object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
maxSum = leftSum = float('-Inf')
for num in nums:
leftSum = max(num, leftSum + num)
maxSum = max(leftSum, maxSum)
return maxSum
1
2
3
4
5
6
7
8
9
10
class (object):
def maxSubArray(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
dp = [0] * len(nums)
for i, val in enumerate(nums):
dp[i] = max(val, dp[i-1]+val)
return max(dp)

53. Maximum Subarray