package mainimport ("fmt")func maxSubArray(nums []int) int { //时间复杂度:O(n)max := nums[0] //假设第0个位置是当前最大值for i := 1; i < len(nums); i++ { //遍历数组if nums[i]+nums[i-1] > nums[i] { //当前值+前一个值大于当前值nums[i] = nums[i] + nums[i-1] //设置当前值=当前值+前一个值 类似向前不断滚动的感觉}if nums[i] > max { //当前值大于当前最大值max = nums[i] //设置当前最大值等于当前值}}return max}func main() {nums := []int{-2, 1, -3, 4, -1, 2, 1, -5, 4}fmt.Println(maxSubArray(nums))}
