这题目愣是半天没读懂什么意思。其实就是一个容器里存储一些数,实时的还会加进来一些数,并且呢保证递增的顺序。问这个容器里有多少个数在t-3000~t这个范围里呢?
用队列实时的更新就可以。
class RecentCounter {
Queue<Integer> q;
public RecentCounter() {
q = new LinkedList<>();
}
public int ping(int t) {
while(!q.isEmpty() && q.peek()<t-3000){
q.poll();
}
q.add(t);
return q.size();
}
}
也可以二分查找。