将一系列价格放入一个列表中,求这些价格的最大利润。例如 [9, 11, 8, 5, 7, 12, 16, 14],则价格差异最大是 11,在 5 和 16 中将产生。
思路:
在扫描到数组中的第 i 个数字时,只要我们能够记住之前的 i-1 个数字中的最小值,就能算出在当前价位卖出时可能得到的最大利润。
def maxProfit(prices):
"""
:type prices: List[int]
:rtype: int
"""
length = len(prices)
if length < 2:
return 0
min = prices[0]
maxdiff = prices[1] - min
for i in range(2,length):
if prices[i-1] < min:
min = prices[i-1]
curdiff = prices[i] - min
maxdiff = max(maxdiff, curdiff)
if maxdiff <= 0:
return 0
return maxdiff
网友评论