39 lines
669 B
C++
39 lines
669 B
C++
#include <cassert>
|
|
#include <queue>
|
|
|
|
class RecentCounter {
|
|
std::queue<int> calls;
|
|
|
|
public:
|
|
RecentCounter() {}
|
|
|
|
int ping(int t) {
|
|
calls.push(t);
|
|
|
|
while (calls.front() < t - 3000) {
|
|
calls.pop();
|
|
}
|
|
|
|
return static_cast<int>(calls.size());
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Your RecentCounter object will be instantiated and called as such:
|
|
* RecentCounter* obj = new RecentCounter();
|
|
* int param_1 = obj->ping(t);
|
|
*/
|
|
|
|
static void test_1() {
|
|
RecentCounter c;
|
|
|
|
assert(c.ping(1) == 1);
|
|
assert(c.ping(100) == 2);
|
|
assert(c.ping(3001) == 3);
|
|
assert(c.ping(3002) == 3);
|
|
}
|
|
|
|
int main() {
|
|
test_1();
|
|
return 0;
|
|
}
|