给定一个长度为 的数组,数组中的数为整数。
请你选择一个非空连续子数组,使该子数组所有数之和尽可能大,子数组最小长度为1。求这个最大值。
第一行为一个正整数 ,代表数组的长度。第二行为 个整数 ,用空格隔开,代表数组中的每一个数。
连续子数组的最大之和。
8 1 -2 3 10 -4 7 2 -5
18
经分析可知,输入数组的子数组[3,10,-4,7,2]可以求得最大和为18
1 2
2
1 -10
-10
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