day53 动态规划part10 代码随想录算法训练营 121. 买卖股票的最佳时机

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

通过截图:

老师代码:

 

扩展写法:

资料:

  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

posted @ 2024-03-03 14:52  o蹲蹲o  阅读(4)  评论(0编辑  收藏  举报