给定一个长度为
的数组,数组中的数为整数。
请你选择一个非空连续子数组,使该子数组所有数之和尽可能大。求这个最大值。
第一行为一个正整数,代表数组的长度。
第二行为个整数
,用空格隔开,代表数组中的每一个数。
连续子数组的最大之和。
3 3 -4 5
5
选择 [5] 这个子数组即可。
3 4 -3 5
6
选择 [4,-3,5] 这个子数组。
package main
import(
"fmt"
"math"
)
func main() {
max := math.MinInt32
var n int
fmt.Scanln(&n)
arr := make([]int, n+1)
for i:=1; i<=n; i++ {
fmt.Scanf("%d", &arr[i])
if temp := arr[i]+arr[i-1]; temp > arr[i] {
arr[i] = temp
}
if max < arr[i] {
max = arr[i]
}
}
fmt.Println(max)
} 加个go