給定每天的股票價格,如果只允許進行一輪交易,也就是買進一次和賣出一次,求所能獲得的最大的利潤。
注意點:
無例子:
輸入: prices = [2, 4, 6, 1, 3, 8, 3]
輸出: 7(在價格為1的時候買入,價格為8時賣出)
從前往後遍歷數列,把當前出現過的最低價格作為買入價格,並計算以當前價格出售的收益,整個遍歷過程中,出現過的最大收益就是題目所求。
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
if len(prices) < 2:
return 0
min_price = prices[0]
max_profit = 0
for price in prices:
if price < min_price:
min_price = price
if price - min_price > max_profit:
max_profit = price - min_price
return max_profit
if __name__ == "__main__":
assert Solution().maxProfit([2, 4, 6, 1, 3, 8, 3]) == 7