動態規劃
動態規劃的特點
- 是求解決策程序最優化的程序,
- 適用于求解將程序分成若干個互相聯系的階段,在它的每一階段都需要作出決策,從而使整個程序達到最好的活動效果,
- 各階段決策依賴于當前面臨的狀態,又影響以后的發展,
- 當各個階段決策確定后,就組成一個決策序列,我們可以從決策序列中找到最優解
LeetCode 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
"""
length = len(nums)
dp = [0]*length
dp[0] = nums[0]
for i in range(1,length):
if dp[i-1]<=0:
dp[i]=nums[i]
else:
dp[i] = dp[i-1] + nums[i]
return max(dp)
獲取在每一個位置上的最佳效果,如果上一效果為增益,則此次累加上一效果,如果上一效果為減益,則此次不累加上衣效果,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/233574.html
標籤:其他
上一篇:AD9361+ ZYNQ軟體無線電平臺搭建實體 | 基于創龍科技Zynq-7045、Zynq-7100平臺
下一篇:C# —— 深入理解委托型別
