1. 程式人生 > >LeetCode-53. 最大子序和-最簡單的動態規劃(Python3)

LeetCode-53. 最大子序和-最簡單的動態規劃(Python3)

題目連結:

53.最大子序和

題目描述:

給定一個整數陣列 nums ,找到一個具有最大和的連續子陣列(子陣列最少包含一個元素),返回其最大和。

示例:

輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

題目思路:

動態規劃最重要的就是要求出狀態轉移方程

解題程式碼:

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        
        
        max_list = list()
        max_list.append(nums[0])
        for _ in nums[1:]:
            max_list.append(0)
        
        for i in range(1,len(nums)):
    
            max_list[i] = max(max_list[i-1]+nums[i],nums[i])
      
        result = max(max_list)
        print(result)
        return result