Menu
CoddyTech

Best Time to Buy and Sell Stock

Otrzymujesz listę prices, w której prices[i] oznacza cenę jednej akcji w dniu i. Możesz kupić jedną akcję jednego dnia i sprzedać ją w późniejszym dniu. Zwróć największy możliwy zysk albo 0, jeśli każda możliwa transakcja przynosi stratę.

Funkcja

maxProfit(prices: integer-array) → integer
pricesinteger-array
cena akcji każdego dnia, w kolejności
Zwracainteger
największy zysk z jednego zakupu i późniejszej sprzedaży albo 0

Ograniczenia

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Wykonujesz najwyżej jedną transakcję i sprzedajesz w późniejszym dniu niż kupujesz.

Przykłady

Wejście
prices = [7, 2, 5, 9, 1, 4]
Wyjście
7
Wyjaśnienie
Kup w dniu 1 za 2 i sprzedaj w dniu 3 za 9, aby osiągnąć zysk w wysokości 7. Najniższa cena, 1 w dniu 4, pojawia się po 9, więc najlepsza sprzedaż po niej przynosi tylko 3.
challenge icon

Pytanie dodatkowe

Co jeśli możesz wykonać dowolną liczbę transakcji, mając jednocześnie najwyżej jedną akcję?

Zresetuj kod
def maxProfit(prices):
    # Napisz kod tutaj

Test #1

Test #2

Argument

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

Oczekiwany wynik

7