
Реализуйте LRU cache с фиксированной вместимостью.
Кеш поддерживает операции:
- put key value: положить или обновить значение;
- get key: вернуть значение по ключу или -1, если ключа нет.
Если после put вместимость превышена, нужно удалить least recently used ключ: тот, к которому дольше всего не обращались через get или put.
В тренажере операции передаются списком, а функция должна вернуть ответы только для операций get.
def lru_cache_interview(capacity: int, operations: list[list]) -> list[int]:
lru_cache_interview(2, [
["put", 1, 1],
["put", 2, 2],
["get", 1],
["put", 3, 3],
["get", 2],
])
# -> [1, -1]capacity = 2operations = [["put",1,1],["put",2,2],["get",1],["put",3,3],["get",2],["put",4,4],["get",1],["get",3],["get",4]][1,-1,-1,3,4]capacity = 1operations = [["put",1,10],["get",1],["put",2,20],["get",1],["get",2]][10,-1,20]capacity = 2operations = [["put",1,1],["put",1,2],["get",1],["get",2]][2,-1]