题目描述
jspackage main
import (
"fmt"
)
// maxSubArray 求最大连续子数组和
func maxSubArray(nums []int) int {
if len(nums) == 0 {
return 0
}
currentSum := nums[0]
maxSum := nums[0]
for i := 1; i < len(nums); i++ {
// 当前和要么接着加,要么从当前元素重新开始
if currentSum < 0 {
currentSum = nums[i]
} else {
currentSum += nums[i]
}
// 更新最大值
if currentSum > maxSum {
maxSum = currentSum
}
}
return maxSum
}
func main() {
nums := []int{-2, 1, -3, 4, -1, 2, 1, -5, 4}
result := maxSubArray(nums)
fmt.Println("最大连续子数组和为:", result)
}
本文作者:曹子昂
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!