CODE-0003 · kimi-k2.7-code (default)class LRUCache:
def __init__(self, capacity: int):
self.capacity = capacity
self.cache = {}
self.order = {}
def get(self, key: int) -> int:
if self.capacity == 0 or key not in self.cache:
return -1
self._update_order(key)
return self.cache[key]
def put(self, key: int, value: int) -> None:
if self.capacity == 0:
return
if key in self.cache:
self.cache[key] = value
self._update_order(key)
return
if len(self.cache) >= self.capacity:
self._evict_lru()
self.cache[key] = value
self._update_order(key)
def _update_order(self, key: int) -> None:
if key in self.order:
del self.order[key]
self.order[key] = None
def _evict_lru(self) -> None:
lru_key = next(iter(self.order))
del self.order[lru_key]
del self.cache[lru_key]