DSA Pattern Recognition
π§ Complete DSA Pattern Recognition Lesson
How to Identify the Right Approach (End-to-End Guide)
π― Lesson Objective
By the end of this lesson, you will be able to:
- Read a DSA problem and quickly identify its underlying pattern
- Map keywords β data structures β algorithms
- Eliminate brute force by instinctively choosing the right approach
- Explain why a solution works (not just code it)
This is the difference between knowing syntax and thinking like an engineer.
π The Core Truth About DSA
Almost every DSA problem is a remix.
The hard part is not coding β itβs recognizing the pattern fast enough.
There are ~12β15 core patterns that appear over and over.
Once you can recognize them, most problems become straightforward.
π§ How to Use This Lesson
For every problem, ask yourself:
- What keywords stand out?
- Is the data contiguous, sorted, or relational?
- Am I optimizing, counting, searching, or generating?
- Is the problem asking for one answer or all answers?
1οΈβ£ Arrays & Strings
π Keywords
subarraysubstringcontiguousrangewindowlongest / shortest
π§ What This Signals
- Sliding Window
- Two Pointers
- Prefix Sum
π Typical Tools
- Index pointers
- Frequency hash
- Running sum
β
Example
βFind the longest substring without repeating charactersβ
β Sliding Window + Hash Map
2οΈβ£ Sliding Window (Very High Frequency)
π Keywords
longest / shortestat most kat least kcontains allwithout repeating
π§ Recognition Rule
If the problem asks for:
A contiguous segment + a condition
β Sliding Window
π Core Logic
- Expand window (
right) - Update state (counts, sum, etc.)
- If invalid β shrink window (
left) - Track best result
3οΈβ£ Two Pointers
π Keywords
sorted arraypairtripletpalindromeremove duplicates
π§ Recognition Rule
If:
- The array is sorted
- You compare elements from both ends
β Two Pointers
π Pointer Patterns
- Opposite direction (
left,right) - Same direction (slow / fast)
4οΈβ£ Hash Map / Hash Set
π Keywords
frequencycountduplicateuniqueseen before
π§ Recognition Rule
If you need:
Fast lookup or counting
β Hash Map / Hash Set
π Often Combined With
- Sliding Window
- Prefix Sum
- Graph traversal
5οΈβ£ Prefix Sum
π Keywords
subarray sumrange sumcumulativeequals k
π§ Recognition Rule
If the problem involves:
Multiple overlapping sum queries
β Prefix Sum
π Core Idea
Store running totals so range queries are O(1).
6οΈβ£ Stack
π Keywords
valid parenthesesbalancednext greater elementprevious smaller
π§ Recognition Rule
If elements need:
Matching, undoing, or nearest comparison
β Stack
π Variants
- Monotonic Stack
- Expression evaluation
7οΈβ£ Queue / Deque
π Keywords
level ordersliding window maximumstreamfirst unique
π§ Recognition Rule
If items are processed:
In the order they arrive
β Queue / Deque
8οΈβ£ Heap / Priority Queue
π Keywords
top kk largest / k smallestmost frequentclosestmerge k
π§ Recognition Rule
If you need:
The best / worst element repeatedly
β Heap
π Common Uses
- Scheduling
- Streaming data
- Greedy optimizations
9οΈβ£ Binary Search
π Keywords
sortedsearchfirst / last occurrenceminimum possiblemaximum possible
π§ Recognition Rule
If:
- Input is sorted or
- The answer exists in a numeric range
β Binary Search
π Advanced Variant
Binary Search on Answer
Used when you search for the best feasible value.
π Trees
π Keywords
binary treedepthheightpathancestorBST
π§ Recognition Rule
Tree problems almost always mean:
- DFS (recursion)
- BFS (level order)
1οΈβ£1οΈβ£ Graphs
π Keywords
connectedpath existscycleislandsdependencies
π§ Recognition Rule
If the problem describes:
Relationships or networks
β Graph
π Techniques
- BFS / DFS
- Topological Sort
- Union Find
1οΈβ£2οΈβ£ Union Find (Disjoint Set)
π Keywords
connected componentsmergedynamic connectivitycycle detection
π§ Recognition Rule
If youβre merging groups dynamically:
β Union Find
1οΈβ£3οΈβ£ Dynamic Programming (DP)
π Keywords
maximum / minimumcount waysoptimalchoicesoverlapping subproblems
π§ Recognition Rule
If the problem:
- Has repeated subproblems
- Requires an optimal result
β DP
1οΈβ£4οΈβ£ Greedy
π Keywords
minimum operationsmaximize profitearliest / latestbest local choice
π§ Recognition Rule
If a local optimal choice leads to a global solution:
β Greedy
1οΈβ£5οΈβ£ Backtracking
π Keywords
all combinationsall permutationsgenerateexplore
π§ Recognition Rule
If the problem asks for:
All possible solutions
β Backtracking
1οΈβ£6οΈβ£ Bit Manipulation (Bonus)
π Keywords
xorsingle numberpower of twobitmask
π§ Recognition Rule
If the problem hints at binary logic:
β Bit Manipulation
π Final Interview Checklist
Ask yourself:
- Is it contiguous? β Sliding Window
- Is it sorted? β Binary Search / Two Pointers
- Do I need fast lookup? β Hash Map
- Am I choosing the best k items? β Heap
- Is it all possibilities? β Backtracking / DP
- Are there relationships? β Graph / Union Find
π§ Final Thought
You donβt master DSA by memorizing solutions.
You master it by recognizing patterns instantly.
Once pattern recognition clicks,
the code becomes the easy part.