Coding interviews test your problem-solving ability under time pressure using data structures and algorithms. The good news: the vast majority of coding interview problems fall into a limited set of recognizable patterns. Once you learn the patterns, most problems become variations you can solve systematically.
This guide gives you the essential patterns, a problem-solving framework, and a structured practice plan.
This is part of the broader technical interview preparation guide. For senior roles, also study the system design interview guide. Before interviews, optimize your resume with the TailorCV ATS score checker.
The Essential DSA Patterns
1. Two Pointers
Use two pointers moving toward each other or in the same direction. Common in sorted arrays, palindromes, and pair-sum problems.
2. Sliding Window
Maintain a window over a contiguous subarray or substring. Common in "longest/shortest substring" and "maximum sum subarray" problems.
3. Fast and Slow Pointers
Two pointers at different speeds. Used for cycle detection in linked lists and finding the middle element.
4. Hash Map / Hash Set
Trade space for time. Common for "find duplicates," "two sum," and frequency counting problems.
5. Binary Search
Search a sorted space in O(log n). Also applies to "search in rotated array" and "find peak element."
6. BFS (Breadth-First Search)
Level-by-level traversal using a queue. Used for shortest path in unweighted graphs and level-order tree traversal.
7. DFS (Depth-First Search)
Deep traversal using recursion or a stack. Used for tree/graph traversal, connected components, and path finding.
8. Backtracking
Build solutions incrementally and abandon paths that fail. Used for permutations, combinations, subsets, and N-Queens.
9. Dynamic Programming
Break problems into overlapping subproblems. Used for "minimum/maximum," "count ways," and optimization problems.
10. Heap / Priority Queue
Maintain the largest or smallest elements efficiently. Used for "top K elements" and "merge K sorted lists."
11. Topological Sort
Order tasks with dependencies. Used for scheduling and course-prerequisite problems.
12. Union Find (Disjoint Set)
Track connected components efficiently. Used for graph connectivity and cycle detection in undirected graphs.
The Problem-Solving Framework (UMPIRE)
When you receive a problem, follow this:
U — Understand: Restate the problem. Ask about edge cases, input size, and constraints. M — Match: Which pattern does this resemble? (sliding window? DFS? DP?) P — Plan: Outline your approach in plain English before coding. I — Implement: Write clean code while explaining as you go. R — Review: Trace through your code with an example. Check edge cases. E — Evaluate: State the time and space complexity. Discuss optimizations.
How to Practice Effectively
Quality Over Quantity
Solving 500 problems mindlessly is less effective than solving 150 problems while truly understanding each pattern.
The Right Practice Loop
- Attempt the problem for 20–30 minutes
- If stuck, look at hints (not the full solution)
- If still stuck after 40 minutes, study the solution
- Understand the pattern, not just the specific solution
- Re-solve the problem from scratch a week later
Talk Out Loud
In real interviews, you must think aloud. Practice this from day one — explain your reasoning as you solve, even when practicing alone. Use the mock interview tool to practice verbal problem-solving.
Recommended Problem Lists
- Blind 75 — The classic starting list (75 essential problems)
- NeetCode 150 — Expanded, well-organized by pattern
- Grind 75 — Customizable by time available
- LeetCode company tags — Practice problems asked at your target companies
8-Week Practice Plan
Week 1: Arrays, two pointers, hash maps (15 problems) Week 2: Sliding window, strings (15 problems) Week 3: Linked lists, fast/slow pointers, stacks (15 problems) Week 4: Trees, BST, BFS, DFS (20 problems) Week 5: Graphs, topological sort, union find (15 problems) Week 6: Backtracking, recursion (15 problems) Week 7: Dynamic programming (20 problems) Week 8: Heaps, binary search, mixed review, mock interviews (15 problems)
Total: ~130 problems across all patterns.
Time and Space Complexity
You must be able to state Big O for every solution:
- O(1) — constant
- O(log n) — logarithmic (binary search)
- O(n) — linear (single loop)
- O(n log n) — sorting
- O(n²) — nested loops
- O(2^n) — exponential (some recursion/backtracking)
Always know the complexity of your solution and whether it can be improved.
Interview Day Coding Tips
- Clarify before coding — never assume
- Start with brute force, then optimize
- Write clean, readable code with good variable names
- Talk through every decision
- Test with examples, including edge cases (empty input, single element, duplicates)
- If you finish early, discuss optimizations or follow-up variations
Common Coding Interview Mistakes
Mistake 1: Coding before understanding
Jumping straight to code without clarifying the problem leads to wrong solutions. Spend the first few minutes understanding.
Mistake 2: Silent solving
Interviewers evaluate your reasoning. Silence makes them unable to assess you or help you when stuck.
Mistake 3: Not testing your code
Always trace through your solution with an example before declaring it done. Catching your own bug is far better than the interviewer catching it.
Mistake 4: Memorizing instead of understanding
Memorized solutions break when the problem varies slightly. Understand the underlying pattern instead.
Related Guides
- Technical Interview Preparation Guide
- How to Prepare for a Job Interview
- How to Research a Company Before Your Job Interview
- How to Practice Mock Interviews Online for Free Using AI
- Phone Interview Tips
- System Design Interview Guide
- Behavioral Interview Questions and Answers
- 20 Common Interview Mistakes to Avoid
- Final Round Interview Tips
- Group Discussion Tips
- How to Answer "Tell Me About Yourself"
- Best Questions to Ask in a Job Interview
Conclusion
Coding interview success comes from pattern recognition, a structured problem-solving framework, and consistent practice with verbal reasoning. Learn the 12 core patterns, practice 130+ problems with the UMPIRE framework, and always think aloud.
Combine this with the technical interview guide and system design guide. Optimize your resume with the TailorCV ATS score checker and practice with the free AI mock interview tool.



