遇到“按时间先后进入,并淘汰最早数据”的问题,可以考虑队列。
class RecentCounter {
private queue: number[]
private head: number
constructor() {
this.queue = []
this.head = 0
}
ping(t: number): number {
this.queue.push(t)
while (this.queue[this.head] < t - 3000) {
this.head++
}
return this.queue.length - this.head
}
}