Все задачи
Сложно

Чистая симуляция LRU-кеша

hash-mapcachesimulation

Условие

Обработайте операции над LRU-кешем ёмкости capacity. ["put", key, value] записывает значение и делает ключ самым свежим. ["get", key] возвращает значение или −1 и обновляет свежесть найденного ключа. Верните массив ответов только для get. При переполнении удаляется давно не использованный ключ.

Пример 1

Вход: 2, [["put","a",1],["put","b",2],["get","a"],["put","c",3],["get","b"],["get","c"]]
Выход: [1,-1,3]

Пример 2

Вход: 1, [["put","x",1],["put","x",2],["get","x"]]
Выход: [2]

Ограничения

  • 1 ≤ capacity ≤ 10 000
  • 0 ≤ operations.length ≤ 100 000
  • Ключи — строки; значения — целые от 0 до 1 000 000
  • Допустимы только операции put и get указанной формы
JS solution.js
Черновик в этой вкладке · Esc, затем Tab — выйти из редактора

Результаты тестов

Напиши решение и запусти тесты. Включены граничные случаи.