Entrevista a los 150 mejoresfácil

Caché LRU

Guía detallada e implementación de Python para el problema 'LRU Cache'.

Declaración del problema

fácil

Diseñe una estructura de datos que siga las restricciones de una caché menos utilizada recientemente (LRU).

Implemente la clase LRUCache:

- LRUCache(capacidad: int): inicializa la caché LRU con capacidad de tamaño positivo.

- get(key: int) -> int - Devuelve el valor de la clave si la clave existe; de ​​lo contrario, devuelve -1.

- put(key: int, value: int) -> Ninguno - Actualiza el valor de la clave si la clave existe. De lo contrario, agregue el par clave-valor al caché. Si la cantidad de claves excede la capacidad, desaloje la clave utilizada menos recientemente.

Las funciones get y put deben ejecutarse en una complejidad de tiempo promedio O(1).

La entrada es una lista de operaciones y una lista de argumentos. Implemente una función lruCache(operations: list, arguments: list) -> list que devuelva una lista de resultados (Ninguno para constructor y put).

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

Ejemplos

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?
Considere la posibilidad de utilizar estructuras de datos específicas de listas vinculadas, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.