問題描述:
給定一個數組 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))
}