↓Skip to main content

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