最大子序和

这道题是一道经典算法题,也是清华考研的题目,使用动态规划(不太理解)来解决,时间复杂度为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继续计算

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入:...
    Y_d89b阅读 3,856评论 0 0
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输...
    calm_peng阅读 1,137评论 0 0
  • 53. 最大子序和 描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返...
    GoMomi阅读 6,156评论 0 1
  • 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输...
    小白学编程阅读 1,176评论 0 0
  • 一、学习与实践 1.付出不亚于任何人的努力 2.要谦虚,不要骄傲 3.要每天反省 4.活着,就要感谢 5.积善行,...
    Samshaobin阅读 884评论 0 1