第121題:買賣股票的最佳時機
描述:給定一個陣列,它的第 i 個元素是一支給定股票第 i 天的價格,如果你最多只允許完成一筆交易(即買入和賣出一支股票一次),設計一個演算法來計算你所能獲取的最大利潤,注意:你不能在買入股票前賣出股票,
示例:
輸入: [7,1,5,3,6,4]
輸出: 5
解釋: 在第 2 天(股票價格 = 1)的時候買入,在第 5 天(股票價格 = 6)的時候賣出,最大利潤 = 6-1 = 5 ,注意利潤不能是 7-1 = 6, 因為賣出價格需要大于買入價格;同時,你不能在買入前賣出股票,
解題思路:動態規劃法
1.股票可以是第2天到最后1天(包含最后一天)中的任何一天賣出
2.計算其中任一天賣出所得到的最大收益(若收益小于零,就不賣了,收益為零)
3.最后得到最大收益
Python代碼:
1 class Solution(object): 2 def maxProfit(self, prices): 3 """ 4 :type prices: List[int] 5 :rtype: int 6 """ 7 maxprofit = [] 8 maxprofit.append(0) 9 for i in range(1, len(prices)): 10 maxtemp = prices[i] - min(prices[0:i]) 11 if maxtemp <= 0: 12 maxprofit.append(0) 13 else: 14 maxprofit.append(maxtemp) 15 return max(maxprofit)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/43178.html
標籤:Python
上一篇:Python--Event
