Queue· 15 min
Number of Recent Calls
LeetCode #933 · Easy · Interactive step-by-step visualization
Setup
Example input
ping(1), ping(100), ping(3001), ping(3002)Step 1 / 16
Current step
1 / 16Hold requests in a queue. Pings arrive in increasing time order, so the oldest request is always at the front. Only requests inside the 3000 ms window need to be counted.
Step log
ping(t) calls
1
0100
13001
23002
3requests within the last 3000 ms
front · exitemptyrear · enter
window
[t - 3000, t]
Named pointer
Active node
Committed or completed
Detached or removed
number-of-recent-calls.java
1class RecentCounter {2 private final Deque<Integer> requests = new ArrayDeque<>();3 4 public int ping(int t) {5 requests.addLast(t);6 while (requests.peekFirst() < t - 3000)7 requests.pollFirst();8 return requests.size();9 }10}● Java
Time
O(1) amortized
Space
O(n)
Pattern
queue
Frames
16
