diff --git a/cpp/number-of-recent-calls.cpp b/cpp/number-of-recent-calls.cpp new file mode 100644 index 0000000..68e21e0 --- /dev/null +++ b/cpp/number-of-recent-calls.cpp @@ -0,0 +1,39 @@ +#include +#include + +class RecentCounter { + std::queue calls; + + public: + RecentCounter() {} + + int ping(int t) { + calls.push(t); + + while (calls.front() < t - 3000) { + calls.pop(); + } + + return static_cast(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; +}