← Sliding Window

Micro-Drill #245 — Sliding window: fixed vs variable size

Sliding Window Target: 15s

Fixed window: add right, remove left when size > k. Variable window: expand right, shrink left until valid.

FIXED vs VARIABLE SIZE SLIDING WINDOW
──────────────────────────────────────
FIXED SIZE (window = k):
  for i in range(len(a)):
      # add a[i] to window
      if i >= k:
          # remove a[i-k] from window
      if i >= k - 1:
          # window is full, record answer
  Examples: max sum of k consecutive, moving average

VARIABLE SIZE (expand/shrink):
  l = 0
  for r in range(len(a)):
      # expand: add a[r]
      while window_invalid():
          # shrink: remove a[l]
          l += 1
      # update answer with window [l..r]
  Examples: longest substring without repeats,
            minimum window substring

DECISION:
  "Exactly k elements"    → fixed window
  "At most k distinct"    → variable, shrink when > k
  "Minimum window with X" → variable, shrink when valid
  "Maximum window with Y" → variable, shrink when invalid

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #244 Micro #246 →