最强解析面试题:最大连续和

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:最大连续和相关的知识,希望对你有一定的参考价值。


最强解析面试题:最大连续和

文章讲解 “ 最大连续和 ” 经典面试题,包含思路及源码,及解惑!

题目

给出一个长度为n的序列A1,A2,……,An,求最大连续和,即找到1<=i<=j<=n,使得Ai+Ai+1+…Aj尽量大。

思路

  • 动态规划
    • 边界条件为 x=0 max = A1
    • 主线条件为 Max(tar[i], res[i-1]+tar[i])

代码

func main() 
   fmt.Println("res:", Res())

func Res() int 
   var tar = []int-1, 2, 1
   var res [3]int
   r := tar[0]
   for i := 0; i < len(tar); i++ 
      if i == 0 
         res[i] = tar[i]
       else 
         res[i] = Max(tar[i], res[i-1]+tar[i])
      
      r = Max(r, res[i])
   
   return r



func Max(a, b int) int 
   if a > b 
      return a
   
   return b

附录

自负和自大真的是搞笑!

以上是关于最强解析面试题:最大连续和的主要内容,如果未能解决你的问题,请参考以下文章

最强解析面试题:二叉树两节点最大距离

最强解析面试题:接雨水...

最强解析面试题:在无序数组中取最大的K个数「建议收藏!」

最强解析面试题:在无序数组中取最大的K个数「建议收藏!」

最强解析面试题:在无序数组中取最大的K个数「建议收藏!」

最强解析面试题:和为S的两个数字