题解 | #连续最大和#

连续最大和

https://www.nowcoder.com/practice/5a304c109a544aef9b583dce23f5f5db

经典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))
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务