Python 中買賣股票的最佳時機 II


假設我們有一個數組 A,其中 A[i] 表示某一天的股票價格。我們必須找到最大利潤。我們可以進行任意多次交易。(交易意味著買賣股票)。但我們必須記住,我們不能同時進行多筆交易。因此,我們必須在購買新股票之前出售股票。

假設陣列類似於 A = [7, 1, 5, 3, 6, 4],則結果將為 7。我們可以看到,如果我們在第 2 天(索引 1)購買,則購買價格為 1。然後,如果我們在第 3 天出售,則利潤將為 5 – 1 = 4。然後在第 4 天購買,並在第 5 天出售,因此利潤將為 6 – 3 = 3

要解決此問題,請按照以下步驟操作 -

  • 令 answer = 0
  • 對於 i 從 0 到 n – 1(n 是 A 中元素的數量) -
    • 如果 A[i] – A[i – 1] > 0,則
      • answer := answer + A[i] – A[i – 1]
  • 返回 answer

示例

讓我們看看實現以更好地理解

 即時演示

class Solution(object):
   def maxProfit(self, prices):
      """
      :type prices: List[int]
      :rtype: int
      """
      ans = 0
      for i in range(1,len(prices)):
         if prices[i] - prices[i-1] >0:
            ans+=(prices[i] - prices[i-1])
      return ans
ob1 = Solution()
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

輸入

print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))

輸出

13

更新於: 2020-04-28

931 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.