在我不断提高 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