最强解析面试题:连续子数组的最大和

Posted 魏小言

tags:

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


最强解析面试题:连续子数组的最大和

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

题目

输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。

思路

动态规划,最大值规则为:

d[i] = max(d[i-1]+tar[i],tar[i]
注意:d[i]为以下标i元素结尾的数组最大和

代码

package main


import "fmt"

func main() 
   tar := []int1, -2, 3, 10, -4, 7, 2, -5
   res, l := tar[0], len(tar)
   d := make([]int, len(tar))
   d[0] = tar[0]
   for i := 1; i < l-1; i++ 
      d[i] = max(d[i-1]+tar[i], tar[i])
      res = max(res, d[i])
   
   fmt.Println(“res:", res)


func max(s, e int) int 
   if s < e 
      return e
   
   return s

附录

一切用数据说话,围绕核心指标,做定性分析和定量分析!

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

剑指offer面试题 42. 连续子数组的最大和

剑指offer面试题42. 连续子数组的最大和

剑指offer面试题42. 连续子数组的最大和

面试题31 连续子数组的最大和

[剑指offer]面试题31:连续子数组的最大和

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