通过万岁!!!
- 题目:就是我们有一个方法ping,每次传入一个事件,然后返回的是从当前t-3000到当前t的我们请求的这个ping的次数。并且t是严格递增的。
- 思路:关键就是严格递增,所以我们可以用队列进行做,每次把当前t加入队列,然后while队头元素,如果队头元素小于t-3000,则表示这个可以返回了,否则就是还在3000秒之内,就在队列中,然后最后返回队列的长度即可。
- 技巧:就是用了一个队列来实现的。
java代码
class RecentCounter {
Queue queue;
public RecentCounter() {
queue = new LinkedList<>();
}
public int ping(int t) {
queue.add(t);
while (queue.peek() < t - 3000) {
queue.remove();
}
return queue.size();
}
}
- 总结:题目比较简单,但是一定要注意给的条件,这是一个有序的t。并且注意数据结构的使用。



