150 principais entrevistasFácil

Cache LRU

Guia detalhado e implementação de Python para o problema 'LRU Cache'.

Declaração do problema

Fácil

Projete uma estrutura de dados que siga as restrições de um cache menos usado recentemente (LRU).

Implemente a classe LRUCache:

- LRUCache(capacity: int) - Inicializa o cache LRU com capacidade de tamanho positivo.

- get(key: int) -> int - Retorna o valor da chave se a chave existir, caso contrário, retorne -1.

- put(key: int, value: int) -> None – Atualize o valor da chave se a chave existir. Caso contrário, adicione o par chave-valor ao cache. Se o número de chaves exceder a capacidade, remova a chave usada menos recentemente.

As funções get e put devem ser executadas em complexidade de tempo média O(1).

A entrada é uma lista de operações e uma lista de argumentos. Implemente uma função lruCache(operations: list, arguments: list) -> list que retorna uma lista de resultados (None para construtor e put).

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

Exemplos

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 usar estruturas de dados específicas de listas vinculadas, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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 Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.