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

题目:122. 买卖股票的最佳时机 II

我的感悟:

  • 只要定义清楚,就可以做出来的。

理解难点:

  • 先判断等于

听课笔记:

  • 看了文字版本,感觉还是我的思路最牛逼!!

我的代码:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        # dp[i] 为截止到当前能获得的最大利润
        # min_value 截止到当前且没有用过的最小值
        dp = [0] * len(prices)
        min_value = prices[0]
        for i in range(1,len(prices)):
            if prices[i] == min_value:  # 如果是[7,7,7]这种也是沿用上一个
                dp[i] = dp[i-1]
            if prices[i] < min_value :    # 如果用更小值就更新最小值
                min_value = prices[i]
                dp[i] = dp[i-1] # 利润沿用上一个
            if prices[i] > min_value:
                dp[i] = dp[i-1] + (prices[i] - min_value)   # 利润加上新的差价
                min_value = prices[i]    # 更新最小值,保证没有用过
        # print(dp)   
        return dp[-1]

通过截图:

老师代码:

扩展写法:

资料:

122.买卖股票的最佳时机II  

视频讲解:https://www.bilibili.com/video/BV1D24y1Q7Ls

https://programmercarl.com/0122.%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%BAII%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html

posted @ 2024-03-03 15:32  o蹲蹲o  阅读(2)  评论(0编辑  收藏  举报