Le migliori 150 intervisteMedio

Il momento migliore per acquistare e vendere azioni con cooldown

Guida dettagliata e implementazione Python per il problema "Momento migliore per acquistare e vendere azioni con tempo di recupero".

Dichiarazione del problema

Medio

Ti viene fornito un array di prezzi in cui prezzi[i] è il prezzo di un determinato titolo nell'i-esimo giorno.

Trova il profitto massimo che puoi ottenere. Puoi completare tutte le transazioni che desideri (ad esempio, acquistarne una e vendere una quota del titolo più volte) con le seguenti restrizioni:

- Dopo aver venduto le tue azioni, non puoi acquistarle il giorno successivo (ovvero, un giorno di recupero).

Nota: non è possibile effettuare più transazioni contemporaneamente (ovvero, è necessario vendere le azioni prima di acquistarle nuovamente).

Scrivi una funzione maxProfit(prices: List[int]) -> int.

Vincoli
  • 1 <= len(prices) <= 5000
  • 0 <= prices[i] <= 1000

Esempi

Example 1
Input
prices = [1,2,3,0,2]
Output
3
Explanation

Transactions = [buy, sell, cooldown, buy, sell].

Example 2
Input
prices = [1]
Output
0
Explanation

No transaction can be made.

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche per DP 2D come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Apri nell'editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.