"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Déchiffrer le LeetCode. Meilleur moment pour acheter et vendre des actions II

Déchiffrer le LeetCode. Meilleur moment pour acheter et vendre des actions II

Publié le 2024-08-05
Parcourir:253

Dans ma quête continue pour perfectionner mes compétences LeetCode, j'ai abordé le problème du « Meilleur moment pour acheter et vendre des actions II ». Ce défi fait suite au problème classique « Meilleur moment pour acheter et vendre des actions II » (LeetCode 121), mais avec une différence cruciale : *vous pouvez exécuter plusieurs transactions pour maximiser les profits.
*

Une approche visuelle

Avant de plonger dans le code, j'ai trouvé incroyablement utile de visualiser le problème sur un tableau blanc. Cela m'a permis de diviser le problème en étapes plus petites et plus faciles à gérer.

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

L’approche gourmande

Étant donné la possibilité d'effectuer des transactions illimitées, une approche gourmande semblait prometteuse. L’idée de base est simple : chaque fois que le prix d’une action augmente par rapport à la veille, nous considérons cela comme une opportunité potentielle de profit. En additionnant toutes ces différences de prix, nous calculons effectivement le profit maximum.

Implémentation Python

Voici le code Python qui implémente cette stratégie gourmande :

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

Implémentation 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
};

Complexité temporelle et spatiale

  • La complexité temporelle de cette approche est O(N) où N = longueur du tableau.
  • La complexité spatiale est N(1) car nous comparons sur place.
Déclaration de sortie Cet article est reproduit sur : https://dev.to/this-is-learning/cracking-the-leetcode-122-best-time-to-buy-and-sell-stock-ii-17k5?1S'il y en a infraction, veuillez contacter [email protected] pour supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3