题目:
题目链接: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/
解题思路:
股票在第n天的最大利润,是第n天的价格,减去之前的最低价格
算法原理如下:
变量:
- min_price : 当前遍历中的最低价格,初始化为float('inf')
- max_profit : 最大利润,初始化为0
- curr_price : 当前价格
流程如下:
- 计算当前利润curr_profit = curr_price - min_price
- 更新max_profit = max(max_profit, curr_profit)
- 更新min_price = min(min_price, curr_price)
代码实现:
class Solution:
def maxProfit(self, prices: List[int]) -> int:
min_price, max_profit = float('inf'), 0
for curr_price in prices:
max_profit = max(max_profit, curr_price - min_price)
min_price = min(min_price, curr_price)
return max_profit