Le migliori 150 intervisteFacile

Cache LRU

Guida dettagliata e implementazione Python per il problema "LRU Cache".

Dichiarazione del problema

Facile

Progettare una struttura dati che segua i vincoli di una cache LRU (Least Recently Used).

Implementa la classe LRUCache:

- LRUCache(capacity: int) - Inizializza la cache LRU con capacità di dimensione positiva.

- get(key: int) -> int - Restituisce il valore della chiave se la chiave esiste, altrimenti restituisce -1.

- put(key: int, value: int) -> None - Aggiorna il valore della chiave se la chiave esiste. Altrimenti, aggiungi la coppia chiave-valore alla cache. Se il numero di chiavi supera la capacità, eliminare la chiave utilizzata meno di recente.

Le funzioni get e put devono essere eseguite ciascuna con una complessità temporale media O(1).

L'input è un elenco di operazioni e un elenco di argomenti. Implementa una funzione lruCache(operations: list, arguments: list) -> list che restituisce un elenco di risultati (Nessuno per costruttore e put).

Vincoli
  • 1 <= capacity <= 3000
  • 0 <= key <= 10000
  • 0 <= value <= 100000
  • At most 200000 calls will be made to get and put

Esempi

Example 1
Input
["LRUCache","put","put","get","put","get","put","get","get","get"], [[2],[1,1],[2,2],[1],[3,3],[2],[4,4],[1],[3],[4]]
Output
[None,None,None,1,None,-1,None,-1,3,4]
Explanation

Cache capacity is 2. put(1,1), put(2,2), get(1) returns 1. put(3,3) evicts key 2. get(2) returns -1 (evicted). put(4,4) evicts key 1. get(1) returns -1, get(3) returns 3, get(4) returns 4.

Need a Hint?
Prendi in considerazione l'utilizzo di strutture dati specifiche dell'elenco collegato 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.