Top 150 des entrevuesFacile

Cache LRU

Guide détaillé et implémentation de Python pour le problème 'LRU Cache'.

Énoncé du problème

Facile

Concevez une structure de données qui suit les contraintes d'un cache LRU (Least Récemment Utilisé).

Implémentez la classe LRUCache :

- LRUCache(capacity: int) - Initialise le cache LRU avec une capacité de taille positive.

- get(key: int) -> int - Renvoie la valeur de la clé si la clé existe, sinon renvoie -1.

- put(key: int, value: int) -> None - Mettre à jour la valeur de la clé si la clé existe. Sinon, ajoutez la paire clé-valeur au cache. Si le nombre de clés dépasse la capacité, supprimez la clé la moins récemment utilisée.

Les fonctions get et put doivent chacune s'exécuter dans une complexité temporelle moyenne O(1).

L'entrée est une liste d'opérations et une liste d'arguments. Implémentez une fonction lruCache(operations: list, arguments: list) -> list qui renvoie une liste de résultats (Aucun pour le constructeur et le put).

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

Exemples

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?
Pensez à utiliser des structures de données spécifiques aux listes chaînées, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.