最大子序列和(Go)
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
func maxSubArray(nums []int) int { if len(nums)==1{ return nums[0] } dp := make([]int,len(nums)) dp[0]=nums[0] //边界 for i:=1;i<len(nums);i++{ if nums[i]+dp[i-1]>nums[i]{ dp[i]=nums[i]+dp[i-1] //递推关系式 }else{ dp[i]=nums[i] } } max:=dp[0] for i:=0;i<len(nums);i++{ if dp[i]>max{ max=dp[i] } } return max }