首頁  >  文章  >  後端開發  >  破解 LeetCode 。買賣股票的最佳時機 II

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

WBOY
WBOY原創
2024-08-05 21:42:12330瀏覽

在我不斷提升 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.length; i++)
    {
    if(prices[i] > prices[i-1])
    {
        profit += Number(prices[i] - prices[i-1])
    }
    }

    return profit
};

時間和空間複雜度

  • 此方法的時間複雜度為 O(N),其中 N = 陣列長度。
  • 當我們就地比較時,空間複雜度是 N(1)。

以上是破解 LeetCode 。買賣股票的最佳時機 II的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn