Python程式:求解股票市場多次交易的最大利潤


假設我們有一列價格,代表公司股票按時間順序排列的價格,我們需要找到透過多次買賣股票可以獲得的最大利潤。記住,必須先買入才能賣出。

因此,如果輸入類似 prices = [10, 50, 30, 40, 60],則輸出為 70,因為我們可以以 10 買入,以 50 賣出,以 30 買入,以 60 賣出。

為了解決這個問題,我們將遵循以下步驟:

  • prev_price := 無窮大
  • profit := 0
  • 對於 prices 中的每個 p,執行:
    • 如果 p > prev_price,則
      • profit := profit + p - prev_price
    • prev_price := p
  • 返回 profit

讓我們看下面的實現,以便更好地理解:

示例

 線上演示

class Solution:
   def solve(self, prices):
      prev_price = float("inf")
      profit = 0
      for p in prices:
         if p > prev_price:
            profit += p - prev_price
            prev_price = p
      return profit
ob = Solution()
print(ob.solve([10, 50, 30, 40, 60]))

輸入

[10, 50, 30, 40, 60]

輸出

70

更新於:2020年10月5日

242 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.