美文网首页
[Leetcode] 53. 最大子序和

[Leetcode] 53. 最大子序和

作者: 丶噗噗噗噗噗 | 来源:发表于2020-05-03 16:00 被阅读0次

    53. 最大子序和

    来源: 53. 最大子序和

    1. 题目描述

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

    2. 解题思路

    动态规划,每个位置为 max(前一个+这个位置,这个位置)

    3. 代码

    class Solution:
        def maxSubArray(self, nums: List[int]) -> int:
            if len(nums) == 1:
                return nums[0]
            # 下面为nums长度至少为2的情况
            res = nums[0]  # 先设定一个初始值(假设第一个数是可获得的最小值)
            for i in range(1, len(nums)):
                nums[i] = max(nums[i], nums[i] + nums[i - 1])  # 更新后的nums[i]存储 以原始num[i]为结尾的子数组和的最大值
                res = max(res, nums[i])  # 更新最大值
            return res
    

    相关文章

      网友评论

          本文标题:[Leetcode] 53. 最大子序和

          本文链接:https://www.haomeiwen.com/subject/wzgdghtx.html