933. 最近的请求次数
分析
利用队列的先进先出特性来存储请求的时间点,并维护一个滑动窗口:
- 存储请求时间:
- 每次调用
ping(t)
,将时间t
加入队列
- 每次调用
- 移除过期请求:
- 从队列头部开始检查,如果某个时间点不在
[t-3000, t]
范围内(即t - q.front() > 3000
),则将其从队列中移除
- 从队列头部开始检查,如果某个时间点不在
- 统计有效请求:
- 最后,队列的大小即为过去
3000
毫秒内的请求数量
- 最后,队列的大小即为过去
时间复杂度
时间复杂度 O(1)
空间复杂度
空间复杂度为 O(n)
C++代码
|
|