class Solution:
def maxSubArray(self, nums: List[int]) -> int:
# dp[i]表示以当前数字为子数组结尾的和
# 状态:i, 遍历所有数字
# 选择:前面一个大于0加入子数组,小于等于0不加入子数组,自己独成一派
# base case: 每个数组自己都是一个最大的子数组
dp = [i for i in nums]
for i in range(1,len(nums)):
if dp[i-1]>0:
dp[i] = dp[i-1]+nums[i]
else:
dp[i] = nums[i]
return max(dp)
每日一道Leetcode - 剑指 Offer 42. 连续子数组的最大和 【动态规划】
最新推荐文章于 2024-09-14 18:52:56 发布