在我不斷提升 LeetCode 技能的過程中,我解決了「買賣股票的最佳時機 II」問題。此挑戰是經典「買入和賣出股票 II 的最佳時機」問題(LeetCode 121)的後續挑戰,但有一個關鍵的區別:*您可以執行多個交易以最大化利潤。
*
在深入研究程式碼之前,我發現在白板上視覺化問題非常有幫助。這使我能夠將問題分解為更小、更易於管理的步驟。
考慮到進行無限交易的靈活性,貪婪的方法似乎很有前途。核心想法很簡單:每當股票價格比前一天上漲時,我們就認為這是一個潛在的獲利機會。透過將所有這些價格差異相加,我們可以有效地計算出最大利潤。
這是實現這種貪婪策略的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
/** * @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 };
以上是破解 LeetCode 。買賣股票的最佳時機 II的詳細內容。更多資訊請關注PHP中文網其他相關文章!