经典dp:dp[i],表示以i结尾的子串,连续子数组最大和为dp[i]
递推dp[i]分类:
- dp[i - 1] + nums[i]: 连上之前的子串
- nums[i]:独立成串
! 注意 是连续的哦,所以不包括 dp[i - 1] 这个类
n = int(input())
nums = list(map(int, input().split()))
dp = [0] * len(nums)
dp[0] = nums[0]
for i in range(1, n):
dp[i] = max(dp[i - 1] + nums[i], nums[i])
print(max(dp))

京公网安备 11010502036488号