Menu
CoddyTech

Best Time to Buy and Sell Stock

FacileGreedypython iconjava iconcpp iconc iconjs icon+10

Ottieni il prezzo di un'azione per una serie di giorni, un prezzo al giorno. Puoi acquistare un'azione in un giorno e venderla in un giorno successivo. Il profitto è il prezzo di vendita meno il prezzo di acquisto e vuoi ottenere il profitto più alto possibile. Se ogni operazione comporterebbe una perdita, semplicemente non fai operazioni e guadagni 0.

Considera i prezzi [7, 2, 5, 9, 1, 4]. Acquistare a 2 il giorno 1 e vendere a 9 il giorno 3 frutta 7, e nessun'altra coppia di giorni dà un risultato migliore. Acquistare a 1 il giorno 4 sembra allettante perché è il giorno più economico, ma l'unico giorno successivo prevede una vendita a 4, quindi l'operazione frutta solo 3.

Provare ogni coppia di giorni funziona, ma è troppo lento per lunghi elenchi di prezzi. Puoi farlo con un'unica scorsa dei giorni. Se vendi oggi, il giorno migliore in cui aver acquistato è quello con il prezzo più basso fino a quel momento, quindi tieni traccia del prezzo più basso man mano che procedi. Il profitto migliore di oggi è il prezzo di oggi meno il prezzo più basso, e la risposta è il più grande di questi valori.

Scrivi una funzione chiamata maxProfit che riceva un elenco di numeri interi prices, dove prices[i] è il prezzo dell'azione nel giorno i, e restituisca il profitto massimo che puoi ottenere acquistando in un giorno e vendendo in un giorno successivo. Se nessuna operazione genera un profitto, restituisci 0.

Vincoli: 1 ≤ prices.length ≤ 10^5, 0 ≤ prices[i] ≤ 10^4.

Funzione

maxProfit(arg1: integer-array) → integer
arg1integer-array
Restituisceinteger

Esempi

Input
arg1 = [7, 2, 5, 9, 1, 4]
Output
7

lock icon+12 test nascosti all’invio

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

Caso 1

Caso 2

Input

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

Atteso

7