You have a RecentCounter class which counts the number of recent requests within a certain time frame.
Implement the RecentCounter class:
It is guaranteed that every call to ping uses a strictly larger value of t than the previous call.
특정 시간 프레임내에서 발생한 최근요청수를 계산하는 카운터 RecentCounter
클래스를 구현하시오
RecentCounter
클래스를 구현하세요:
RecentCounter()
: 카운터 생성하면서 최근요청수를 0으로 초기화합니다. int ping(int t)
은 새로운 요청시간 t
를 추가합니다. t
는 밀리초단위의 시간으로 t
가 입력되면 ping()
은 t
시간에 새로운 요청을 추가하고, 3000
범위 내에서 발생한 요청 수를 반환합니다. 구체적으로는 [t - 3000, t]
범위 내에서 발생한 요청 수를 반환합니다.이전 호출보다 엄격히 더 큰 t
값이 사용됨이 보장됩니다.
입력:
["RecentCounter", "ping", "ping", "ping", "ping"][], [1], [100], [3001], [3002]]
출력:
[null, 1, 2, 3, 3]
설명:
RecentCounter recentCounter = new RecentCounter();
recentCounter.ping(1); // 요청 = [1], 범위는 [-2999,1], 반환값은 1
recentCounter.ping(100); // 요청 = [1, 100], 범위는 [-2900,100], 반환값은 2
recentCounter.ping(3001); // 요청 = [1, 100, 3001], 범위는 [1,3001], 반환값은 3
recentCounter.ping(3002); // 요청 = [1, 100, 3001, 3002], 범위는 [2,3002], 반환값은 3