首页 > 编程语言 > 详细

动态规划算法总结

时间:2020-08-02 11:07:36      阅读:110      评论:0      收藏:0      [点我收藏+]

1. 题源:牛课网,题号:OR176 连续子数组最大和 

  题目:输入一个整形数组(可能有正数和负数),求数组中连续子数组(最少有一个元素)的最大和。要求时间复杂度为O(n)。
  思路:

  • 动态规划最简单的方法就是依次列举给出当前数组的几个元素,从后往前推理出数组与当前元素和结果数组的关系。
  • 当前数组:[a1,a2,a3,a4,a5]
  • 结果数组:[maxsum1, maxsum2, maxsum3, maxsum4, maxsum5]
  • 列出简单地几个元素:[a1,a2,a3]
  • 从后往前推理找到当前结点与结果数组的前面若干结点的关系。
  • suma3如何求呢? : 可能的组合情况情况: [a1, a2, a3] [a2 ,a3] [a3] , 如果 suma2 < 0, 那么sum = a3 ; 如果 suma2 >= 0 那么sum =sum + a3。其中:suma2就是比较[a1, a2]和[a2]比较谁大
  • 那么suma2如何求呢? sum2 : 可能情况:[a1, a2] [a2] 如果suma1<0, 那么 sum = a2; 如果suma1>=0, 那么sum=sum + a2
  • 那么suma2如何求呢? sum1就是a1

 

动态规划算法总结

原文:https://www.cnblogs.com/yulianggo/p/13417766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!