Top 150-InterviewEinfach

LRU-Cache

Detaillierte Anleitung und Python-Implementierung für das „LRU-Cache“-Problem.

Problemstellung

Einfach

Entwerfen Sie eine Datenstruktur, die den Einschränkungen eines LRU-Cache (Least Recent Used) folgt.

Implementieren Sie die LRUCache-Klasse:

- LRUCache(capacity: int) – Initialisiert den LRU-Cache mit positiver Kapazitätsgröße.

- get(key: int) -> int – Gibt den Wert des Schlüssels zurück, wenn der Schlüssel existiert, andernfalls wird -1 zurückgegeben.

- put(key: int, value: int) -> None – Aktualisieren Sie den Wert des Schlüssels, wenn der Schlüssel vorhanden ist. Andernfalls fügen Sie das Schlüssel-Wert-Paar zum Cache hinzu. Wenn die Anzahl der Schlüssel die Kapazität überschreitet, entfernen Sie den zuletzt verwendeten Schlüssel.

Die Get- und Put-Funktionen müssen jeweils mit einer durchschnittlichen Zeitkomplexität von O(1) ausgeführt werden.

Die Eingabe ist eine Liste von Operationen und eine Liste von Argumenten. Implementieren Sie eine Funktion lruCache(operations: list, arguments: list) -> list, die eine Ergebnisliste zurückgibt (Keine für Konstruktor und Put).

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

Beispiele

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?
Erwägen Sie die Verwendung verknüpfter Listen-spezifischer Datenstrukturen wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

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

Im Editor öffnen
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

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.