Кеш с вытеснением LRU

Hard
ClassMapDesignSber

Реализуйте класс LRUCache с capacity (максимальное число элементов):

  • get(key) — вернуть значение по ключу или -1 если нет
  • put(key, value) — установить значение. Если capacity превышен, удалить самый давно использованный элемент

Обе операции должны работать за O(1).

const cache = new LRUCache(2);
cache.put(1, 1);
cache.put(2, 2);
cache.get(1);      // 1
cache.put(3, 3);   // удаляет ключ 2
cache.get(2);      // -1

Примеры

Пример 1
Вход:
get после put
Выход:
1
Пример 2
Вход:
get вытесненного
Выход:
-1
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода