在我不斷提升 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[i-1]) { profit = Number(prices[i] - prices[i-1]) } } return profit };
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3