[路飞]_leetcode_剑 042.最近请求次数

97 阅读1分钟

写一个 RecentCounter 类来计算特定时间范围内最近的请求。表示的是返回过去 3000 毫秒内发生的所有请求数(包括新请求),也就是返回的是 [t-3000, t] 之间的请求个数。

解题思路

  1. 数组queue用来存储每次请求的时间 t 。
  2. 当新进来的 t ,需要遍历一下数组内部的元素是否满足 [t-3000, t] 之间的范围内。

代码

var RecentCounter = function() {
    this.queue = [];
};

RecentCounter.prototype.ping = function(t) {
    // 主要是保存 [t-3000, t] 之间的请求ip
    this.queue.push(t);
    while(t - this.queue[0] > 3000) {
        this.queue.shift()
    }
    return this.queue.length;
};