mirror of
https://gitlab.com/mfocko/LeetCode.git
synced 2024-11-10 00:09:06 +01:00
40 lines
669 B
C++
40 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;
|
||
|
}
|