动态规划的基本步骤
- 确定初始状态,思考是否需要用数组存储各个状态
- 状态转移方程
- 终止条件
class Solution:
# 动态规划思想dp + 在原数组上修改
# 注意不是看nums原本里面的值的正负,而是一个个与前一个数相加后的正负
def maxSubArray(self, nums: List[int]) -> int:
for i in range(1,len(nums)):
nums[i] += max(nums[i-1], 0)
return max(nums)
参考:leetcode题解