给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0
分析
- 现在你是站在上帝视角来看每一天的价格,所以可以设想你在某天,你是不是后悔之前的某一天最低点没有买入,那么如果买入,就是今天卖出的最佳利润
- 最后再统计每天卖出的最佳利润
class Solution:
def maxProfit(self, prices: List[int]) -> int:
# 除了想买入股票后,何时卖出股票
# 还可以站在每个卖出股票的时候,想下何时买入股票,肯定是在最低的时候,因为现在我是上帝视角,可以假设之前某个地方已经买了
max_profit = 0
min_value = prices[0]
for p in prices:
max_profit = max(max_profit, p - min_value)
if min_value > p: min_value = p
return max_profit







网友评论