题目描述
解题思路
- 创建一个队列
- 每次统计ping的方法都会传递一个时间参数进来,将队列最后面那个元素提取出来
- 如果说t-最后一个元素大于3000的话,那么我们就把最后那个元素pop出来
- 到合适的位置了我们吧t放进去
- 返回队列的长度.
代码实现
class RecentCounter {
queue<int> q;
public:
RecentCounter() {
}
int ping(int t) {
while(!q.empty()){
if(t-q.front()>3000){
q.pop();
}else{
break;
}
}
q.push(t);
return q.size();
}
};
/**
* Your RecentCounter object will be instantiated and called as such:
* RecentCounter* obj = new RecentCounter();
* int param_1 = obj->ping(t);
*/