LRU-кэш

Проектирование структур данных Сложная
Реализуйте LRU-кэш ёмкости capacity. Дан список операций operations: ["put", key, value] или ["get", key]. put вытесняет наименее давно использованный элемент при переполнении; любое обращение (get или put к существующему ключу) обновляет 'свежесть' ключа. Верните список результатов всех операций get по порядку (-1, если ключа нет).
Сигнатура функции
lru_cache_ops(capacity: int, operations: list) -> list[int]
Примеры
ВходОжидаемый результат
[2, [["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]
[1, [["put", 1, 1], ["put", 2, 2], ["get", 1], ["get", 2]]][-1, 2]
[2, [["get", 1]]][-1]
[2, [["put", 1, 10], ["get", 1]]][10]
[3, [["put", 1, 1], ["put", 2, 2], ["put", 3, 3], ["get", 1], ["put", 4, 4], ["get", 2], ["get", 3], ["get", 4]]][1, -1, 3, 4]
[2, [["put", 1, 1], ["get", 1], ["put", 2, 2], ["get", 1], ["get", 2]]][1, 1, 2]
[1, [["put", 1, 1], ["put", 2, 2], ["get", 1], ["get", 2]]][-1, 2]
[2, [["put", 2, 1], ["put", 1, 1], ["put", 2, 3], ["put", 4, 1], ["get", 1], ["get", 2]]][-1, 3]
[2, [["put", 1, 1], ["put", 2, 2], ["put", 1, 10], ["get", 1], ["get", 2]]][10, 2]
[4, [["put", 1, 1], ["put", 2, 2], ["put", 3, 3], ["put", 4, 4], ["get", 1], ["get", 2], ["get", 3], ["get", 4]]][1, 2, 3, 4]
1решили
1пытались
100%успешность
Войдите, чтобы решить →