给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
解题思路:
只需要一次售卖
所以只需要从第一天开始,动态找出最小值,然后用后面的天数的钱减最小值获得最大收益,维护最大收益即可
class Solution:
def maxProfit(self, prices: List[int]) -> int:
minPrice = prices[0]
# 当前收益率为 0
maxProfit_ = 0
for day in range(1,len(prices)):
# 前n天的最小价格
minPrice = min(minPrice,prices[day])
# 今天价格-前n天最低价格的动态最大值 || 今天之前的最大收益
maxProfit_ = max(prices[day] - minPrice,maxProfit_)
return maxProfit_