1. 题目
2. 分析
如果当前的价格比之前买入的价格要低,那么我们就“逢低买入”,更新买入的价格,因为在此后的每一天里,当前的价格与之前的买入价格相比是更优解。
如果读者对单调队列有接触,可以看到这一步的核心思想与单调队列有异曲同工之妙,只不过这里没有显式的使用单调队列。
3. 代码
class Solution:def maxProfit(self, prices: List[int]) -> int:buy_price = prices[0]max_profit = 0for i in range(len(prices)):if prices[i] > buy_price:max_profit = max(max_profit, prices[i] - buy_price)else:buy_price = prices[i]return max_profit