Technical Interview Prep

The LeetCode Study Guide

Neetcode 150, Blind 75, key patterns, Big O cheat sheet, and everything you need to ace the technical interview.

The Study Lists

Stop random grinding. These curated lists cover the exact patterns companies test.

150
Neetcode 150
The gold standard. 150 problems organized by pattern, with video explanations for every single one.
Start Neetcode 150
75
Blind 75
The shorter list. Most commonly asked problems across FAANG. Great starting point before the full 150.
Start Blind 75

Key Topics by Difficulty

Master these in order. Build a strong foundation before moving to harder topics.

Easy
  • Arrays
  • Strings
  • HashMaps
  • Two Pointers
  • Stacks
  • Linked Lists
  • Binary Search
Medium
  • Sliding Window
  • Trees (BFS/DFS)
  • Graphs
  • Backtracking
  • Heaps / Priority Queues
  • Intervals
  • Greedy
Hard
  • Dynamic Programming
  • Tries
  • Segment Trees
  • Union Find
  • Topological Sort
  • Bit Manipulation

Big O Cheat Sheet

You WILL be asked about time and space complexity. Know these cold.

Notation Name Example
O(1) Constant HashMap lookup, array index access
O(log n) Logarithmic Binary search, balanced BST lookup
O(n) Linear Single loop, linear search
O(n log n) Linearithmic Merge sort, heap sort, Tim sort
O(n²) Quadratic Nested loops, bubble sort
O(2ⁿ) Exponential Recursive fibonacci, power set
O(n!) Factorial Permutations, travelling salesman

Key Patterns

Pattern recognition beats memorizing solutions. Learn to identify which pattern applies to a problem.

Two Pointer

When to use: Sorted arrays, finding pairs, palindromes, removing duplicates, container with most water.

Sliding Window

When to use: Subarray/substring problems, finding max/min in a range, contiguous sequence constraints.

BFS / DFS (Tree & Graph Traversal)

When to use: Tree traversal, level-order problems, shortest path (BFS), exploring all paths (DFS), connected components.

Binary Search

When to use: Sorted data, search space reduction, finding boundaries, rotated arrays, minimizing/maximizing a value.

Dynamic Programming

When to use: Optimization problems, counting paths/ways, subsequences, overlapping subproblems, "min/max cost" phrasing.

HashMap / HashSet

When to use: Frequency counting, finding duplicates, two-sum variants, grouping anagrams, caching results.

Recommended Resources

The best courses, channels, and tools for learning DSA from scratch or leveling up.

How to Practice Effectively

The Right Approach
  1. Read the problem carefully — identify inputs, outputs, constraints
  2. Ask clarifying questions — input size? negative numbers? duplicates?
  3. Think before coding — explain your approach in plain English first
  4. Start with brute force — get a working solution, then optimize
  5. Analyze complexity — state Big O for time AND space
  6. Test with examples — walk through your code with edge cases
  7. Time yourself — Easy: 15 min, Medium: 25 min, Hard: 40 min
  8. Review the pattern — after solving, categorize which pattern it used