Leetcode 剑指系列 Day 9 动态规划

1.剑指 Offer 42. 连续子数组的最大和

动态规划思考过程:
  状态定义:设 dp[i] 为以nums[i] 结尾所能获取的连续数组最大和,nu[i]为包含i的连续数组最大值;

  转移方程:那么很好想到dp[i] 应该为 dp[i - 1] 、nu[i]之间的最大值;即有 dp[i] = max( dp[i - 1], nu[i]);

  初始状态:dp[0] = nums[i], nu[0] = nums[i];

  返回值:dp[n - 1] 其中n为数组长度
算法过程:
从 i = 1 的位置开始遍历,nu[i]在遍历过程中判断公式如下:

nu[i] = nu[i - 1] > 0 ? nu[i] + nums[i] : nums[i];//若前一项的nu[i - 1]小于0,那么nu[i]应当就是他自身,否则,就应该为nu[i - 1] + nums[i].

dp[i]在遍历过程的判断公式如下:

dp[i] = dp[i

Leetcode 剑指系列 Day 9 动态规划最先出现在Python成神之路

版权声明:
作者:lichengxin
链接:https://www.techfm.club/p/21310.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>