思路
循环一次,记录当前的最大值,当前最大值小于0的时候,重新开始
code
func maxSubArray(nums []int) int {
cur := nums[0]
sum := nums[0]
for i := 1; i < len(nums); i++ {
if sum >= 0 {
sum += nums[i]
} else {
sum = nums[i]
}
if cur < sum {
cur = sum
}
}
return cur
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode