
解题思路:
用一个队列维护当前请求时间不超过3000的请求,每次插入一个请求更新队列,将超过3000ms的请求剔除,返回队列长度,代码如下:
class RecentCounter {
private:
queue<int> q;
public:
RecentCounter() {
}
int ping(int t) {
int size = q.size();
while(!q.empty() && (q.front() + 3000 < t)) {
size --;
q.pop();
}
q.emplace(t);
return size + 1;
}
};
/**
* Your RecentCounter object will be instantiated and called as such:
* RecentCounter* obj = new RecentCounter();
* int param_1 = obj->ping(t);
*/```
本文介绍了一种用C++实现的队列算法,用于维护最近3000毫秒内的请求计数,通过队列操作实现了高效处理新请求并剔除过期请求,适用于实时监控场景。

9182

被折叠的 条评论
为什么被折叠?



