【LeetCode】53. 最大子序和 python实现

在这里插入图片描述

解题思路

动态规划

  1. 设置第一个值为最大和的连续子数组
  2. 计算第二个连续子数组的和
  3. 如果第二个连续子数组的和小于第二个数值,就把当前的数值当作以当前值为结束的连续子数组的最大和
  4. 再更新最大和

python 代码

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

s = Solution()
result = s.maxSubArray([-2,1,-3,4,-1,2,1,-5,4])
print(result)
发布了222 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42247922/article/details/104603078