Нужно реализовать счётчик событий с двумя методами: hit(t) регистрирует событие в момент t в секундах, а count(t) возвращает число событий за последние 300 секунд до момента t включительно. Время в вызовах не убывает. Например, после hit(1), hit(2), hit(300) вызов count(300) вернёт 3, а count(301) — 2. Как бы вы это сделали?
~4 мин голосом
Как подойти
Проверяют, умеете ли вы перейти от наивного решения к структуре данных под скользящее окно. Важно обосновать её корректность через неубывание времени, оценить сложность и предложить вариант с фиксированной памятью для высокой нагрузки.
Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.