題目:121. 買賣股票的最佳時機
我的感悟:
- so easy
- 列印dp確實能發現問題
理解難點:
- 注意條件,及時更新dp
聽課筆記:
- 看了,老師的程式碼,感覺沒有我的簡潔,哈哈!!
我的程式碼:
class Solution:
def maxProfit(self, prices: List[int]) -> int:
# 設dp[i] 為截止到當前能獲得的最大利潤
# cur_min 為截止到當前股票的最低價格
dp = [0] * len(prices)
cur_min = prices[0]
for i in range(1,len(prices)):
if prices[i] >= cur_min: # 如果當前的價格大於最小值記錄下利潤
dp[i] = max(prices[i] - cur_min,dp[i-1])
else: # 如果價格低於最小值,更新最小值
cur_min = prices[i]
dp[i] = dp[i-1] # 沿用上一次的最大值
# print(dp)
return dp[-1]
透過截圖:
老師程式碼:
擴充套件寫法:
資料:
- 買賣股票的最佳時機
影片講解:https://www.bilibili.com/video/BV1Xe4y1u77q
https://programmercarl.com/0121.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BA.html