问题描述:
给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。
代码如下:
package main
import (
"fmt"
)
func getMaxSum(arr []int) int {
var sum, maxSum int
for i := 0; i < len(arr); i++ {
sum = 0
for j := i; j < len(arr); j++ {
sum += arr[j]
if sum > maxSum {
maxSum = sum
}
}
}
return maxSum
}
func main() {
var arr []int
arr = []int{1, -2, 3, 10, -4, 7, 2, -5}
fmt.Println(getMaxSum(arr))
}