Em minha busca contínua para aprimorar minhas habilidades em LeetCode, abordei o problema do "Melhor momento para comprar e vender ações II". Este desafio é uma continuação do clássico problema "Melhor momento para comprar e vender ações II" (LeetCode 121), mas com uma diferença crucial: *você pode executar múltiplas transações para maximizar o lucro.
*
Antes de mergulhar no código, achei extremamente útil visualizar o problema em um quadro branco. Isso me permitiu dividir o problema em etapas menores e mais gerenciáveis.
Dada a flexibilidade para fazer transações ilimitadas, uma abordagem gananciosa parecia promissora. A ideia central é simples: sempre que o preço de uma ação aumenta em relação ao dia anterior, consideramos isso uma potencial oportunidade de lucro. Ao somar todas essas diferenças de preço, calculamos efetivamente o lucro máximo.
Aqui está o código Python que implementa essa estratégia gananciosa:
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 };
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3