Algorithms
Topological Sort
·3 mins
Algorithm
Graph
Topological-Sort
Kahn
Ordering, cycle detection, dependency unlocking, and graph propagation
String DP
·2 mins
Algorithm
Dynamic-Programming
String
Lcs
Palindrome
Prefix tables, edit operations, subsequences, and interval palindrome DP
Shortest Path
·3 mins
Algorithm
Graph
Shortest-Path
Dijkstra
Bellman-Ford
Dijkstra, minimax paths, and Bellman-Ford with edge limits
Knapsack DP
·3 mins
Algorithm
Dynamic-Programming
Knapsack
Subset-Sum
0/1, unbounded, reachability, counting, and optimization states
Grid DP
·3 mins
Algorithm
Dynamic-Programming
Grid-Dp
Counting, cost optimization, reverse resource DP, and local geometry
Kadane's Algorithm
·2 mins
Algorithm
Kadane
Dynamic-Programming
Array
Maximum subarray DP with an ending-here invariant
Sliding Window
·8 mins
Algorithm
Sliding-Window
Two-Pointers
Hash-Table
Monotonic-Queue
Fixed-size windows, variable windows for longest / shortest, counting subarrays (at most K minus at most K - 1, count += left for at least K), and monotonic deques for window extremes
Union Find
·8 mins
Algorithm
Union-Find
Introduction to Union Find
Difference Array
·3 mins
Algorithm
Difference-Array
Introduction to Difference Array
Prefix Sum
·5 mins
Algorithm
Prefix-Sum
Introduction to Prefix Sum
Next Permutation
·3 mins
Algorithm
Next-Permutation
Introduction to Next Permutation
Digit Dynamic Programming
·5 mins
Algorithm
Digit-Dp
Introduction to Digit Dynamic Programming