题目描述
求出最大利润。
思路
直观的理解,就是求数组中最大值和最小值的差,其中最大值排在最小值之后。
首先想的是,用二重循环来求,但是这样做会超时。
所以考虑另外一种思路:设置两个参数,最小价格和最大利润。最小价格会不断改变,而最大利润=当前值-最小价格,也会随着p的改变而改变。
代码
class Solution:
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if not prices:
return 0
minPrice = prices[0]
maxProfit = 0
for p in prices:
if p < minPrice:
minPrice = p
if p - minPrice > maxProfit:
maxProfit = p - minPrice
return maxProfit