最大子序和

这道题是一道经典算法题,也是清华考研的题目,使用动态规划(不太理解)来解决,时间复杂度为O(n)。

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

class Solution:
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        sum = 0
        maxSum = nums[o]
        for num in nums:
            sum += num
            if sum > maxSum:
                maxSum = sum
            if sum < 0:
                sum = 0
        return maxSum

这里将sum进行累加,当sum大于最大序列和时替换,当sum小于0时就恢复sum为0继续计算

你可能感兴趣的:(最大子序和)