描述
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
示例 1:
输入:[7,1,5,3,6,4]
输出:5
示例 2:
输入:prices = [7,6,4,3,1]
输出:0
思路
每天遍历过去的时候,如果发现是最低的,那就假设当天买进,一般情况下,每天都计算按照之前最低买进的计算最大利润。
复杂度O(n)
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
min_p = prices[0]
max_pro = 0
for p in prices:
if p < min_p:
min_p = p
elif p - min_p > max_pro:
max_pro = p - min_p
return max_pro