You are given an array
prices
whereprices[i]
is the price of a given stock on theith
day.You want to maximize your profit by choosing a single day to buy one stock and choosing a different day in the future to sell that stock.
Return the maximum profit you can achieve from this transaction. If you cannot achieve any profit, return
0
.
class Solution:
def maxProfit(self, prices):
# 记录最高利润、最低成本
res = 0
min_price = prices[0]
for i in range(1, len(prices)):
min_price = min(min_price, prices[i])
res = max(res, prices[i] - min_price)
return res
class Solution:
def maxProfit(self, prices):
# left: buy; right: sell
left, right = 0, 1
res = 0
while right < len(prices):
profit = prices[right] - prices[left]
if profit > 0:
res = max(res, profit)
else:
left = right
right += 1
return res