Sorting Algorithms
Comparison and non-comparison sorting algorithms.
Searching Algorithms
Linear, binary, and advanced search techniques.
Data Structures
Lists, stacks, queues, trees, heaps, and hash-based structures.
Graph Algorithms
BFS, DFS, shortest path, and topological sort.
Dynamic Programming
Memoization, tabulation, and classic DP problems.
Dynamic Programming Introduction
Overlapping subproblems and optimal substructure.
Memoization
Top-down DP with caching.
Tabulation
Bottom-up DP with tables.
Fibonacci DP
Classic intro to memoization vs tabulation.
Climbing Stairs
Count ways to reach top with 1 or 2 steps.
Coin Change
Minimum coins to make amount.
Coin Change II
Count combinations to make amount.
Longest Increasing Subsequence
O(n log n) with patience sorting.
Longest Common Subsequence
Classic 2D DP on strings.
Edit Distance
Levenshtein distance between strings.
0/1 Knapsack
Maximize value with weight constraint.
Unbounded Knapsack
Unlimited item usage.
House Robber
Max sum without adjacent elements.
Unique Paths
Grid path counting.
Maximum Subarray
Kadane's algorithm and DP view.
Palindromic Substring
Expand around center or DP.
Word Break
Segment string using dictionary.
Decode Ways
Count decodings of digit string.
String Algorithms
Pattern matching, palindromes, and string DP.
Recursion & Backtracking
Recursive thinking and backtracking patterns.