Ctrl K
Java · Middle · Код

Реализуй класс LruCache с фиксированной вместимостью, которую передают в конструктор. Метод get по ключу возвращает значение или null, метод put кладёт пару ключ-значение, а при переполнении вытесняется элемент, к которому дольше всего не обращались. Обе операции должны работать за константное время.

~15 мин голосом

Как подойти

Проверяют, умеешь ли ты собрать структуру данных из двух примитивов ради O(1) на обе операции — хеш-таблицы для поиска и двусвязного списка для порядка использования — и аккуратно отработать граничные случаи: обновление существующего ключа, вытеснение без ошибки на единицу, отсутствующий ключ.

Встречал этот вопрос на настоящем собесе?
Ответов0
Средний балл—
Сильных—
Тренировали0
Темы
Похожие вопросыРеализуйте класс LRUCache с заданной ёмкостью и двумя методами: get возвращает значение по ключу или None, put сохраняет значение. При переполнении вытесняется ключ, к которому дольше всего не обращались, и обе операции должны работать за O(1). MiddleНапиши класс FlatIterator, который принимает список списков целых чисел и реализует интерфейс Iterator: hasNext говорит, остались ли элементы, а next возвращает следующее число, проходя все вложенные списки по порядку. Заранее копировать все элементы в один общий список нельзя. MiddleРеализуйте LRU-кэш фиксированной ёмкости. Метод get принимает ключ и возвращает значение или признак отсутствия, метод put добавляет или обновляет значение, а при переполнении вытесняется ключ, который дольше всех не использовали. Обе операции должны работать за O(1). MiddleКак устроен HashMap внутри? Что происходит, когда вы вызываете put? JuniorЧем отличаются ArrayList и LinkedList и когда что выбрать? Junior

Ответь голосом

Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.

Войти, чтобы ответить

Лучше в наушниках · ~15 мин