Roadmaps › DSA
DSA Roadmap
Learn DSA step by step — 124 free lessons with spaced repetition and active recall on RetainHQ, so what you study actually sticks.
Lessons
- 0/1 Knapsack
- 2D Arrays & Matrices
- Amortized Analysis
- Anagrams
- Arrays & Memory
- Backtracking template
- Base case
- BFS on graphs
- Big-O Notation
- Binary heap
- Binary Search on the Answer
- Binary Search
- Binary tree & traversals
- Bitmask DP
- Bitwise operators
- Brute force first
- BST: insert & search
- Bubble Sort
- Climbing stairs / Fibonacci
- Coin change
- Collisions & Load Factor
- Combination sum
- Combinatorics & counting
- Common Complexities
- Connected Components
- Counting bits
- Counting Operations
- Cycle Detection
- Designing data structures
- DFS on Graphs
- DFS: pre / in / post
- Difference array
- Dijkstra's Algorithm
- Edit distance
- Fast & slow pointers
- Fenwick tree (BIT)
- Find the middle
- Floyd's cycle detection
- Frequency Arrays
- Frequency Counting
- GCD, LCM & modular arithmetic
- Graph representations
- Grid DP (unique paths / min path sum)
- Hash Sets vs Maps
- Hash Tables
- Heap sort
- Height & diameter
- House robber
- In-Place Operations
- Insertion Sort
- Interval scheduling
- Iteration & Traversal
- Jump game
- Kadane's algorithm
- Level-order (BFS)
- Linear Search
- Linked list rewiring
- Logarithms & Powers of Two
- Longest common subsequence
- Longest increasing subsequence
- Lower Bound
- Lowest common ancestor
- Memoization (top-down)
- Merge intervals
- Merge Sort
- Merge two sorted lists
- Min stack
- Minimum Spanning Tree (Kruskal)
- Monotonic deque
- Monotonic stack
- N-Queens
- Next greater element
- Non-comparison sorts
- Optimal substructure
- Ordered sets & sorted containers
- Overlapping subproblems
- Palindromes
- Pattern Matching (KMP)
- Pattern recognition drill
- Permutations
- Precomputation
- Prefix Sums
- Queue & deque
- Quickselect
- Quicksort & partition
- Recognizing divide & conquer
- Recognizing graph problems
- Recognizing greedy vs DP
- Recognizing sliding window
- Recognizing two pointers
- Recursion tree
- Recursive relation
- Recursive tree thinking
- Reverse in k-groups
- Rolling hash (Rabin-Karp)
- Segment tree
- Selection Sort
- Single number (XOR)
- Sliding window (fixed)
- Sliding window (variable)
- Space optimization
- Stack fundamentals
- State & transition
- String Traversal
- Subsets
- Tabulation (bottom-up)
- The call stack
- Top-K with a heap
- Topological Sort
- Tracing State & Loop Invariants
- Traversal & reversal
- Tree DP
- Trie (prefix tree)
- Two Pointers on Strings
- Two pointers
- Union-Find
- Upper Bound
- Valid parentheses
- Validate a BST
- Weighted vs unweighted
- What is an Algorithm?
- When BFS Stops Working
- Why greedy fails
- Why greedy works