https://leetcode.com/problems/number-of-recent-calls/ Easy

Условие

Реализуйте класс RecentCounter, который отслеживает количество вызовов метода ping(t), произошедших за последние 3000 миллисекунд. Каждый вызов ping(t) добавляет время t в список и возвращает количество вызовов, произошедших в интервале [t - 3000, t].

Решение

class RecentCounter {
    private val queue: ArrayDeque<Int> = ArrayDeque()

    fun ping(t: Int): Int {
        queue.addLast(t)
        while (queue.first() < t - 3000) {
            queue.removeFirst()
        }
        return queue.size
    }
}