每日一道算法題--leetcode 53--最大子序和(動態規劃)--python

【題目描述】bash

【代碼思路】

一維動態規劃問題,狀態轉移方程爲:app

dp[i]=max(nums[i],dp[i-1]+nums[i]) 【上代碼】ui

class Solution:
    def maxSubArray(self, nums: List[int]) -> int:
        if len(nums)==1:return nums[0]
        dp=[]
        dp.append(nums[0])
        for i in range(1,len(nums)):
            dp.append(max(nums[i],nums[i]+dp[i-1]))
        return max(dp)
複製代碼

看效果,時間複雜度線性:spa

相關文章
相關標籤/搜索