leetcode-买卖股票的最佳时机

121. 买卖股票的最佳时机

为了解决这个问题,你需要找到价格数组中最低点和最高点的最大差值,但要确保最高点在最低点之后。你可以通过遍历价格数组一次来完成这个操作:

  1. 初始化一个变量min_price为一个非常大的数,它将跟踪你遍历过的价格中的最小值。
  2. 初始化一个变量max_profit为0,它将跟踪可实现的最大利润。
  3. 遍历价格数组prices。对于每个价格,你都会:
    • 更新min_price为当前价格和min_price的较小者。
    • 计算如果你在min_price买进,在当前价格卖出能得到的利润,将它与max_profit比较,并更新max_profit为它们之间的较大值。
  4. 在遍历结束后,max_profit将包含你可以得到的最大利润。
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        min_price = float('inf')
        max_price = 0
        for price in prices:
            if price < min_price:
                min_price = price
            elif price - min_price > max_price:
                max_price = price - min_price
        return max_price

你可能感兴趣的:(leetcode)