最强解析面试题:连续子数组的最大和
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
附录
一切用数据说话,围绕核心指标,做定性分析和定量分析!
以上是关于最强解析面试题:连续子数组的最大和的主要内容,如果未能解决你的问题,请参考以下文章