最大子序列和(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
}

浙公网安备 33010602011771号