"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Quebrando o LeetCode. Melhor momento para comprar e vender ações II

Quebrando o LeetCode. Melhor momento para comprar e vender ações II

Publicado em 2024-08-05
Navegar:330

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.
*

Uma abordagem visual

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.

Cracking the LeetCode . Best Time to Buy and Sell Stock II

A abordagem gananciosa

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.

Implementação Python

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

Implementação de JavaScript

/**
 * @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
};

Complexidade de Tempo e Espaço

  • A complexidade de tempo desta abordagem é O(N) onde N = comprimento da matriz.
  • A complexidade do espaço é N(1) conforme estamos comparando no local.
Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/this-is-learning/cracking-the-leetcode-122-best-time-to-buy-and-sell-stock-ii-17k5?1Se houver algum violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

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