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

当然,在官方题目中也有谈到“段树区间合并法解决多次询问的「区间最长连续上升序列问题」和「区间最大子段和问题」”,这个如果有机会的话先去看一下,因为现在真的啥都不记得了。

posted @ 2022-05-06 09:10  Lazy_tiger  阅读(20)  评论(0编辑  收藏  举报