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