」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 破解 LeetCode 。買賣股票的最佳時機 II

破解 LeetCode 。買賣股票的最佳時機 II

發佈於2024-08-05
瀏覽:197

在我不斷提升 LeetCode 技能的過程中,我解決了「買賣股票的最佳時機 II」問題。此挑戰是經典「買入和賣出股票 II 的最佳時機」問題(LeetCode 121)的後續挑戰,但有一個關鍵區別:*您可以執行多個交易以最大化利潤。
*

視覺方法

在深入研究程式碼之前,我發現在白板上視覺化問題非常有幫助。這使我能夠將問題分解為更小、更易於管理的步驟。

Cracking the LeetCode . Best Time to Buy and Sell Stock II

貪婪方法

考慮到進行無限交易的靈活性,貪婪的方法似乎很有前途。核心觀念很簡單:每當股票價格比前一天上漲時,我們就認為這是一個潛在的獲利機會。透過將所有這些價格差異相加,我們可以有效地計算出最大利潤。

Python實作

以下是實現這個貪心策略的Python程式碼:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        profit = 0

        for i in range(1, len(prices)):
            if prices[i] > prices[i-1]:
                profit =prices[i] - prices[i-1]

        return profit

JavaScript 實作

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function(prices) {
    var profit = 0;
    for (var i = 1; i  prices[i-1])
    {
        profit  = Number(prices[i] - prices[i-1])
    }
    }

    return profit
};

時間與空間複雜度

  • 此方法的時間複雜度為 O(N),其中 N = 陣列長度。
  • 當我們就地比較時,空間複雜度是 N(1)。
版本聲明 本文轉載於:https://dev.to/this-is-learning/cracking-the-leetcode-122-best-time-to-buy-and-sell-stock-ii-17k5?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3