day53 動態規劃part10 程式碼隨想錄演算法訓練營 121. 買賣股票的最佳時機

o蹲蹲o發表於2024-03-03

題目: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]

透過截圖:

day53 動態規劃part10  程式碼隨想錄演算法訓練營 121. 買賣股票的最佳時機

老師程式碼:

擴充套件寫法:

資料:

  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

相關文章