Algorithms and Data Structures
12 chapters
01 Complexity and Problem-Solving Thinking
Big-O and Trade-offs
LeetCode DSA topic: time complexity, space complexity, amortized analysis, trade-off thinking
Problem Decomposition
LeetCode DSA topic: constraints, input modeling, edge cases, invariants
From Brute Force to Optimization
LeetCode DSA topic: baseline solution, optimization path, pattern selection, complexity improvement
02 Arrays and Strings
Array Basics
LeetCode DSA topic: index access, in-place updates, iteration patterns, edge cases
Strings and Character Frequency
LeetCode DSA topic: frequency counting, two-pass scans, anagram patterns, normalization
Prefix Sum and Difference Thinking
LeetCode DSA topic: prefix sum, range queries, subarray sums, difference arrays
03 Linked Lists, Stacks, and Queues
Linked Lists
LeetCode DSA topic: pointer updates, dummy nodes, reversal, cycle detection
Stacks and Monotonic Stacks
LeetCode DSA topic: LIFO, balanced parentheses, next greater element, monotonic patterns
Queues, Deques, and BFS Foundations
LeetCode DSA topic: FIFO, deque usage, level-order traversal, state expansion
04 HashMaps, Sets, and Counting Patterns
HashMap Basics
LeetCode DSA topic: lookup, insert, complements, deduplication
Frequency and Counting Patterns
LeetCode DSA topic: frequency maps, buckets, grouping, majority patterns
Hash Trade-offs and Edge Cases
LeetCode DSA topic: collisions, ordering, memory trade-offs, pathological cases
05 Two Pointers, Sliding Window, and Intervals
Two Pointers
LeetCode DSA topic: sorted arrays, convergence, partitioning, pair matching
Sliding Window
LeetCode DSA topic: variable window, fixed window, frequency constraints, window invariants
Interval Problems
LeetCode DSA topic: merge intervals, meeting rooms, line sweep basics, overlap logic
06 Binary Search, Sorting, and Selection
Binary Search Patterns
LeetCode DSA topic: mid calculation, lower bound, upper bound, search on answer
Sorting Strategies
LeetCode DSA topic: comparison sort, stable sorting, custom comparators, sort then scan
Heaps and Top-K
LeetCode DSA topic: priority queue, k largest, streaming top-k, heap trade-offs
07 Trees, Heaps, and Tries
Binary Trees and Traversals
LeetCode DSA topic: DFS, BFS, recursive traversal, iterative traversal
BST and Balanced Thinking
LeetCode DSA topic: BST invariants, ordered traversal, height, pruning
Heaps and Tries
LeetCode DSA topic: min heap, max heap, prefix trees, autocomplete patterns
08 Graphs, BFS, DFS, and Union-Find
Graph Representation
LeetCode DSA topic: adjacency list, adjacency matrix, directed graphs, weighted graphs
BFS and DFS Patterns
LeetCode DSA topic: connected components, shortest path in unweighted graphs, flood fill, back edge detection
Union-Find and Topological Sort
LeetCode DSA topic: disjoint set union, path compression, cycle detection, DAG ordering
09 Recursion, Backtracking, and Divide and Conquer
Recursion Thinking
LeetCode DSA topic: base case, call stack, state contraction, recursive invariants
Backtracking Patterns
LeetCode DSA topic: choices, constraints, pruning, permutations and combinations
Divide and Conquer
LeetCode DSA topic: merge sort reasoning, quickselect, problem splitting, combine phase
10 Dynamic Programming and Greedy
11 Bit Manipulation, Math, and String Algorithms
Bit Manipulation
LeetCode DSA topic: bit masks, xor tricks, set bits, power-of-two patterns
Math Algorithms
LeetCode DSA topic: gcd, sieve, modular arithmetic, combinatorics basics
String Matching
LeetCode DSA topic: substring search, KMP, Rabin-Karp, rolling hash basics
12 LeetCode Patterns and Interview Strategy
Pattern Recognition
LeetCode DSA topic: problem signals, pattern mapping, input clues, constraint-based selection
Explaining Solutions Clearly
LeetCode DSA topic: communicating trade-offs, stating invariants, complexity explanation, interview narration
Common Mistakes and Recovery
LeetCode DSA topic: off-by-one, missed edge cases, incorrect state updates, self-correction strategy