在我不断提高 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中文网其他相关文章!