题目:
题目截图:
解题步骤:
1.有新请求就入队,3000毫秒前发出的请求(即不在范围内的请求)出队
2.队列的长度就是最近请求次数
代码:
var RecentCounter = function () {
this.q = [];
};
/**
* @param {number} t
* @return {number}
*/
RecentCounter.prototype.ping = function (t) {
this.q.push(t);
while (this.q[0] < t - 3000) {
this.q.shift();
}
return this.q.length;
};
/**
* Your RecentCounter object will be instantiated and called as such:
* var obj = new RecentCounter()
* var param_1 = obj.ping(t)
*/
时间复杂度分析:
时间复杂度是O(n),n是请求的次数
空间复杂度分析:
空间复杂度是O(n)
怎么样,是不是很简单,你学会了吗?
如果这篇文章能够帮助到您,希望您不要吝惜点赞👍👍和收藏💖💖,您的支持是我继续努力的动力 💪💪!!!