leetcode53.最大的子数组和
滑动窗口
基本思路
1.扩大窗口,并且累计数组和
2.维护最大数组和,当数组和小于0,向左偏移缩减窗口
3.重复1,2步骤,直到r到达数组的结尾
解法代码
func maxSubArray(nums []int) int {
l,r:=0,0
winSum,maxSum:=0,-1<<31
for r<len(nums){
winSum+=nums[r]
r++
if winSum>maxSum{
maxSum=winSum
}
for winSum<0{
winSum-=nums[l]
l++
}
}
return maxSum
}
Last updated