#391 Подсчет активных пользователей в скользящем окне

Компании:
Яндекс
Темы:
АлгоритмыХеш-таблицыПрактика

Есть последовательность запросов пользователей, каждый запрос — это пара (time, userId), запросы всегда приходят в отсортированном по времени порядке.

Нужно уметь быстро отвечать: "сколько за последние k ms было пользователей, которые задали >= limit запросов", k > 0, limit > 0.

class UserStatistics {
    private long limit = 0;
    private long k = 0;

    public void event(long now, long userId) {
        // place your code here
    }

    public int robotCount(long now) {
        // place your code here
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти