53. 最大子序和-动态规划

Posted 豫见成电

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了53. 最大子序和-动态规划相关的知识,希望对你有一定的参考价值。

题目描述:

给定一个整数数组 ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。


示例:

输入:[-2,1,-3,4,-1,2,1,-5,4],

输出: 6

解释: 连续子数组 [4,-1,2,1] 的和最大为 6。


如果你已经实现复杂度为O(n) 的解法,尝试使用更为精妙的分治法求解。


解题思路:

动态规划问题,核心在于找到递推方程:

因为是连续子序列,当前和只能是已有得序列和加上当前元素or当前元素故其递推方程较为容易得出为

sum=max(nums[i]+sum,num[i])


代码实现(C++):




以上是关于53. 最大子序和-动态规划的主要内容,如果未能解决你的问题,请参考以下文章

53. 最大子序和-动态规划-简单

Leetcode之动态规划(DP)专题-53. 最大子序和(Maximum Subarray)

动态规划系列之力扣第53题——最大子序和

53-最大子序和(动态规划与分治法)

LeetCode 53. 最大子序和(动态规划,Java)

动态规划 解决二维最大子序和问题---滚动数组