Контест Middle Задачи на Kotlin спрашивают часто обновлено
LRU-кеш на LinkedHashMap
Условие
Смоделируй LRU-кеш ёмкостью cap:
put k v: записать значение (если ключ есть, обновить); запись делает ключ самым свежим; если ключей стало большеcap, удалить давно не использованный;get k: вывести значение или-1; успешныйgetтоже делает ключ самым свежим.
Ввод. cap q (1 ≤ cap ≤ 10^4, 1 ≤ q ≤ 2000), затем q команд. Ключи и значения без пробелов.
Вывод. Ответы на get по одному в строке.
Как подойти
Подсказки: 2
- Нужна хеш-таблица плюс порядок использования.
- LinkedHashMap умеет accessOrder.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.