53. Maximum Subarray
暴力解
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
ans = 0
for end in range(1, len(nums)+1):
for start in range(end):
local = 0
for i in range(start, end):
local += nums[i]
ans = max(ans, local)
return ans自底向上
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
dp = [float('-inf')] * len(nums)
dp[0] = nums[0]
for i in range(1, len(nums)):
dp[i] = max(nums[i], nums[i] + dp[i - 1])
return max(dp)Last updated