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]
通过截图:
老师代码:
扩展写法:
资料:
- 买卖股票的最佳时机