DP--最大子数组和(线性-单串)

2022-02-16  本文已影响0人  习惯水文的前端苏

\bullet 目录

\bullet 题目

\bullet 思路

    状态定义:dp[i]表示以i结尾的最大子数组和

    转移方程:

        计算dp[i]时,dp[0]到dp[i-1]的值已经求出

        由于是连续数组,故不存在将nums[i]逐个与dp[n]搭配求解的过程

        换言之

        dp[i]仅与dp[i-1]有关

        考虑极端情况下

        当dp[i-1]<0时,求得的结果更小,故应舍弃

        因此状态转移方程为:dp[i] = nums[i] > 0 ? nums[i] + max(dp[i-1],0) : max(dp[i-1],0)

    初始值:

        由于仅依赖比i小的O(1)个子问题,故用一个变量pre初始为0

    边界:

        dp[i-1]是否小于0,如果是<0,则舍弃

        dp[i]是否小于0,如果是,则舍弃

\bullet 实现

上一篇 下一篇

猜你喜欢

热点阅读