## Условие Реализуй структуру данных `LRUCache` с операциями: - `get(key)` — вернуть значение, если ключ есть; `-1` иначе. Считается «использованием» ключа. - `put(key, value)` — добавить или обновить. При превышении capacity — выкинуть **наименее недавно использованный** ключ. **Формат входа:** - `capacity` — целое, $1 \leq capacity \leq 3000$. - До $2 \cdot 10^5$ операций `get` / `put`. - $0 \leq key, value \leq 10^4$. **Формат выхода:** - Для каждого `get` — значение или `-1`. **Пример:** ``` LRUCache cache(2) cache.put(1, 1) cache.put(2, 2) cache.get(1) → 1 cache.put(3, 3) # выкинул ключ 2 (LRU) cache.get(2) → -1 cache.put(4, 4) # выкинул ключ 1 cache.get(1) → -1 cache.get(3) → 3 cache.get(4) → 4 ``` **Ограничения:** - `get` и `put` — оба должны быть **$O(1)$ average**.

Алгоритмы hard senior

Вопрос с собеседования аналитика по теме «Алгоритмы».

algorithmsdesignhash-maplinked-list

Разбор ответа

Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.

3000+ вопросов с разбором, карточки с раскрытием ответа, AI-собес и подготовка к интервью аналитика.

Получить доступ к ответам — все вопросы →

Что дальше

Похожие вопросы из категории «Алгоритмы»