LeetCode数据结构——53最大子数组和
求数组中的最大连续子数组和。刚开始的第一想法,这不就是滑动窗口么!然后去写滑动窗口的时候,发现没写对,其实主要还是滑动窗口中的判断条件,如果pre = max(pre+num[i],num[i])
。
代码如下:
class Solution:
def maxSubArray(self, nums: List[int]) -> int:
if len(nums) == 1:
return nums[0]
pre, result = 0, nums[0]
for i in range(len(nums)):
pre = max(pre+nums[i], nums[i])
result = max(result, pre)
return result
当然,在官方题目中也有谈到“段树区间合并法解决多次询问的「区间最长连续上升序列问题」和「区间最大子段和问题」”,这个如果有机会的话先去看一下,因为现在真的啥都不记得了。