Circular Queue (cap = 8)
front: vị trí phần tử kế tiếp sẽ dequeue. rear: vị trí phần tử kế tiếp sẽ enqueue ghi vào. Cả hai chạy vòng (mod 8).
Queue bằng 2 stack (bài 2 README)
enqueue(x): push vào in. dequeue(): nếu out rỗng → đổ toàn bộ in sang out (đảo thứ tự), rồi pop out. Amortized O(1).
in (cho enqueue)
out (cho dequeue)
Trung bình 5 số gần nhất (bài 4 README) — Sliding Window O(1)
Giữ queue tối đa 5 số + biến sum. Khi đủ 5: dequeue cũ nhất (sum -= old), enqueue mới (sum += new). Trung bình = sum / size.
Rate limiter: sliding-window log (README §7.1)
Queue giữ timestamp request. Mỗi request mới: bỏ timestamp đã rời cửa sổ (≤ now−window), rồi nếu chưa đủ limit thì cho qua.
Queue timestamp trong cửa sổ:
Tăng "now" mỗi lần để mô phỏng request đến theo thời gian.