Menu
CoddyTech

Best Time to Buy and Sell Stock

FacileGloutonpython iconjava iconcpp iconc iconjs icon+10

On vous donne une liste prices, où prices[i] est le prix d’une action le jour i. Vous pouvez acheter une action un jour et la vendre un jour ultérieur. Retournez le profit maximal que vous pouvez réaliser, ou 0 si toutes les transactions possibles entraînent une perte.

Fonction

maxProfit(prices: integer-array) → integer
pricesinteger-array
le cours de l’action chaque jour, dans l’ordre
Renvoieinteger
le bénéfice maximal obtenu en achetant une fois puis en vendant plus tard, ou 0

Contraintes

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Vous effectuez au maximum une transaction, et vous vendez un jour après l’achat.

Exemples

Entrée
prices = [7, 2, 5, 9, 1, 4]
Sortie
7
Explication
Achetez le jour 1 à 2 et vendez le jour 3 à 9 pour un bénéfice de 7. Le prix le plus bas, 1 le jour 4, survient après le 9 ; la meilleure vente qui suit ne rapporte donc que 3.
challenge icon

Pour aller plus loin

Et si vous pouviez effectuer autant de transactions que vous le souhaitez, tout en ne détenant qu’une seule action à la fois au maximum ?

Réinitialiser le code
def maxProfit(prices):
    # Écrivez le code ici

Test #1

Test #2

Argument

prices = [7, 2, 5, 9, 1, 4]

Résultat attendu

7