跳到主要内容

933.最近的请求次数

链接:933.最近的请求次数
难度:Easy
标签:设计、队列、数据流
简介:写一个 RecentCounter 类来计算特定时间范围内最近的请求。

题解 1 - typescript

  • 编辑时间:2021-03-14
  • 执行用时:264ms
  • 内存消耗:47.9MB
  • 编程语言:typescript
  • 解法介绍:队列直接判断头部值是否符合要求。
class RecentCounter {
private queue: number[] = [];
ping(t: number): number {
this.queue.push(t);
while (this.queue[0] < t - 3000) {
this.queue.shift();
}
return this.queue.length;
}
}

题解 2 - cpp

  • 编辑时间:2022-05-06
  • 执行用时:132ms
  • 内存消耗:56MB
  • 编程语言:cpp
  • 解法介绍:queue。
class RecentCounter {
public:
queue<int> q;
RecentCounter() {}
int ping(int t) {
q.push(t);
while (t - q.front() > 3000) q.pop();
return q.size();
}
};

题解 3 - go

  • 编辑时间:2022-05-06
  • 执行用时:136ms
  • 内存消耗:8.1MB
  • 编程语言:go
  • 解法介绍:queue。
type RecentCounter struct {
queue []int
}
func Constructor() RecentCounter {
res := RecentCounter{}
return res
}
func (this *RecentCounter) Ping(t int) int {
this.queue = append(this.queue, t)
for t-this.queue[0] > 3000 {
this.queue = this.queue[1:]
}
return len(this.queue)
}