Learn
Practice
Interview
Resources
Newsletter
F
Toggle theme
0
F
0
Toggle menu
Animations
← Back to All Animations
Design Hit Counter
Bookmark
Brute Force
Queue
Circular Buffer
Input
Standard
Same Timestamp
Expiry
Bucket Reuse
Custom
operations
=
[hit(1), hit(2), hit(3), getHits(4), hit(300), getHits(300), getHits(301)]
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
timestamps
counts
0
1
2
3
4
bucket
0
0
0
0
0
0
0
0
0
0
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
timestamps
counts
0
1
2
3
4
bucket
0
0
0
0
0
0
0
0
0
0
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
timestamps
counts
0
1
2
3
4
bucket
0
1
0
0
0
0
1
0
0
0
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
timestamps
counts
0
1
2
3
4
bucket
0
1
2
0
0
0
1
1
0
0
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
total =
0
timestamps
counts
0
1
2
3
4
bucket
0
1
2
3
0
0
1
1
1
0
i
keep buckets where 4 - timestamps[i] < 300
hit(1)
hit(2)
hit(3)
getHits(4)
=
?
hit(300)
getHits(300)
=
?
getHits(301)
=
?
total =
3
timestamps
counts
0
1
2
3
4
bucket
0
1
2
3
0
0
1
1
1
0
i
4
−
3
=
1
<
300
total +=
1
hit(1)
hit(2)
hit(3)
getHits(4)
=
3
hit(300)
getHits(300)
=
?
getHits(301)
=
?
timestamps
counts
0
1
2
3
4
bucket
0
1
2
3
0
0
1
1
1
0
index
timestamps[0]
0
≠
300
empty slot
hit(1)
hit(2)
hit(3)
getHits(4)
=
3
hit(300)
getHits(300)
=
?
getHits(301)
=
?
total =
1
timestamps
counts
0
1
2
3
4
bucket
300
1
2
3
0
1
1
1
1
0
i
300
−
300
=
0
<
300
total +=
1
hit(1)
hit(2)
hit(3)
getHits(4)
=
3
hit(300)
getHits(300)
=
4
getHits(301)
=
?
total =
4
timestamps
counts
0
1
2
3
4
bucket
300
1
2
3
0
1
1
1
1
0
getHits(300) =
4
hit(1)
hit(2)
hit(3)
getHits(4)
=
3
hit(300)
getHits(300)
=
4
getHits(301)
=
?
total =
1
timestamps
counts
0
1
2
3
4
bucket
300
1
2
3
0
1
1
1
1
0
i
301
−
1
=
300
≥
300
expired
hit(1)
hit(2)
hit(3)
getHits(4)
=
3
hit(300)
getHits(300)
=
4
getHits(301)
=
3
timestamps
counts
0
1
2
3
4
bucket
300
1
2
3
0
1
1
1
1
0
All operations processed
algo
master
.
io
Step:
Start: timestamps[300] and counts[300] initialized to all zeros.
0 / 41
Input
Standard
Same Timestamp
Expiry
Bucket Reuse
Custom
operations
=
[hit(1), hit(2), hit(3), getHits(4), hit(300), getHits(300), getHits(301)]
0 / 41
algo
master
.
io
Step:
Start: timestamps[300] and counts[300] initialized to all zeros.