[leetcode]python3 算法攻略-最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

方案一:

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        max_pre = -float('inf')
        max_cur = -float('inf')
        for i in nums:
            max_cur = max(max_cur+i,i)
            max_pre = max(max_pre,max_cur)
        return max_pre

方案二:

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        s, sums = -float('inf'), []
        for n in nums:
            sums.append(n)
            s = max(s, sum(sums))
            if sum(sums) <= 0:
                sums = []       
        return s

猜你喜欢

转载自blog.csdn.net/zhenghaitian/article/details/81091767