'给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
'示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
Sub 贪心算法_最大子序和()
nums = Array(-2, 1, -3, 4, -1, 2, 1, -5, 4)
res = maxSubArray(nums)
Debug.Print (res)
End Sub
Public Function maxSubArray(nums)
If UBound(nums) = 1 Then maxSubArray = nums(0): Exit Function
sum = -1048576
count = 0
For i = 0 To UBound(nums)
count = count + nums(i)
sum = Application.Max(sum, count)
If count <= 0 Then
count = 0
End If
Next
maxSubArray = sum
End Function