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