5DSA
Patterns That Crack
80% of Interviews
✂ Sliding Window | ⟷ Two Pointers
↺ Fast & Slow | ⬚ BFS/DFS on Grids
Sliding Window
A moving "window" slides across an array
or string so you reuse work instead of
recalculating from scratch. Turns a slow
O(n²) brute force into a clean O(n) pass.
When you see: "longest / max / min subarray or substring"
The tell: you're recomputing overlapping ranges.
Classic problem: Longest substring without repeating
characters
Two Pointers
Two markers move through the data, from
both ends or at different speeds to shrink
the search space. Most powerful on sorted
arrays where you can decide which pointer
to move.
When you see: "a sorted array, or comparing from both
ends"
The tell: "find a pair that sums to," "remove duplicates," "is
it a palindrome"
Classic problem: Container with most water
Fast & Slow Pointers
Two pointers move at different speeds
through a sequence. The gap between
them reveals cycles, midpoints, and loop
entry points all in one pass, no extra
memory.
When you see: linked lists, cycles, or "find the middle"
The tell: "detect a loop," "find where the cycle starts"
Classic problem: Linked list cycle detection
BFS / DFS on Grids
Treat a 2D grid as a graph and explore it cell
by cell, BFS spreads out level by level, DFS
dives deep first. The go-to for anything
about connected regions or shortest paths.
When you see: a 2D grid or a graph
The tell: "islands," "shortest path," "connected regions"
Classic problem: Number of islands
Top-K / Heap
A heap keeps just the K items you care
about instead of sorting everything. You
get the largest, smallest, or most frequent
elements in O(n log k), far cheaper than a
full sort.
When you see: "Kth largest/smallest" or "most
frequent"
The tell: you need the top few without sorting
everything
Classic problem: Top K frequent elements
Save
&
Share
Follow for more
interview focused
technical content
visit [Link]