为了解决这个问题,你需要找到价格数组中最低点和最高点的最大差值,但要确保最高点在最低点之后。你可以通过遍历价格数组一次来完成这个操作:
min_price
为一个非常大的数,它将跟踪你遍历过的价格中的最小值。max_profit
为0,它将跟踪可实现的最大利润。prices
。对于每个价格,你都会:
min_price
为当前价格和min_price
的较小者。min_price
买进,在当前价格卖出能得到的利润,将它与max_profit
比较,并更新max_profit
为它们之间的较大值。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