0%

933.最近请求的次数

题目

最近的请求次数

思路

使用队列,每次将新的 t 加入队列,然后循环判断对头元素是否大于 t - 3000,若小于则出队,否则结束循环,最后返回队列中的元素个数即可。

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class RecentCounter {
public:
int count;
queue<int> que;
RecentCounter() {
count = 0;
while(!que.empty()) que.pop();
}

int ping(int t) {
que.push(t);
while(que.front() < t - 3000){
que.pop();
}
return que.size();
}
};

/**
* Your RecentCounter object will be instantiated and called as such:
* RecentCounter* obj = new RecentCounter();
* int param_1 = obj->ping(t);
*/
  • 时间复杂度:O(n),其中 n 是调用 ping 的次数
  • 空间复杂度:O(n),队列中元素的个数

执行用时:144 ms, 在所有 C++ 提交中击败了32.54%的用户

内存消耗:56.1 MB, 在所有 C++ 提交中击败了24.97%的用户

通过测试用例:68 / 68

正在加载今日诗词....