DAY6 连续子数组最大和

2020-05-10  本文已影响0人  神游物外的轮子

剑指Offer 42:连续子数组最大和

Leetcode 53. Maximum Subarray

思路比较简单:从前往后累加,当累加和为负数则归零,重新累加;最大和取每次累加和中最大的值。

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        if len(nums) == 0:
            return 0
        max_sum = tmp_sum = nums[0]
        for i in range(1, len(nums)):
            tmp_sum = max(nums[i], nums[i] + tmp_sum)
            max_sum = max(max_sum, tmp_sum)
        return max_sum

另一个想法是用动态规划:设定f(n)为数组结尾为n的连续数组最大和

上一篇下一篇

猜你喜欢

热点阅读