标签:队列 ping queue int RecentCounter 3000 933 leetcode 刷题
原文链接:https://leetcode-cn.com/problems/number-of-recent-calls/写一个 RecentCounter 类来计算最近的请求。
它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。
返回从 3000 毫秒前到现在的 ping 数。
任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。
保证每次对 ping 的调用都使用比之前更大的 t 值。
题目分析:建一个队列来存放t值,每次从队列尾部放入t;然后获取队列头里的值n,并判断是否在在[t-3000,t]的范围内,不在就移除。
class RecentCounter {
Queue<Integer> queue;
public RecentCounter() {
queue = new LinkedList<Integer>();
}
public int ping(int t) {
//添加t
queue.add(t);
//遍历队列,并判断是否在范围内,不在就移除
while( queue.peek() < t-3000 ){
queue.poll();
}
return queue.size();
}
}
标签:队列,ping,queue,int,RecentCounter,3000,933,leetcode,刷题 来源: https://blog.csdn.net/allen11112/article/details/100046533
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。