Menu
CoddyTech

Best Time to Buy and Sell Stock

FacileGreedypython iconjava iconcpp iconc iconjs icon+10

Ti viene fornita una lista prices, dove prices[i] è il prezzo di un’azione nel giorno i. Puoi acquistare un’azione in un giorno e venderla in un giorno successivo. Restituisci il profitto massimo che puoi ottenere, oppure 0 se ogni possibile operazione comporta una perdita.

Funzione

maxProfit(prices: integer-array) → integer
pricesinteger-array
il prezzo del titolo per ogni giorno, in ordine
Restituisceinteger
il profitto massimo ottenuto da un acquisto e da una vendita successiva, oppure 0

Vincoli

  • 1 ≤ prices.length ≤ 105
  • 0 ≤ prices[i] ≤ 104
  • Effettui al massimo una transazione e vendi in un giorno successivo a quello in cui acquisti.

Esempi

Input
prices = [7, 2, 5, 9, 1, 4]
Output
7
Spiegazione
Acquista il giorno 1 a 2 e vendi il giorno 3 a 9 per un profitto di 7. Il prezzo più basso, 1 il giorno 4, viene dopo il 9, quindi la vendita migliore successiva frutta solo 3.
challenge icon

Per approfondire

Che cosa succederebbe se potessi fare tutti gli scambi che vuoi, detenendo al massimo un’azione alla volta?

Ripristina il codice
def maxProfit(prices):
    # Scrivi il codice qui

Test #1

Test #2

Argomento

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

Output atteso

7