Graphs
- Check Bi-Partite
- Check if Cycle Exists
- Check Cycle without recursion - Brent's Algorithm
- Check if we can visit all nodes (DFS)
- Count number of connected components in an undirected graph
- Djikstra (Using Heap)
- Find Shortest Path from Source to Target
- Find Path b/w Source & Target - Single Parent
- Find minimum vertices to reach all nodes
- Topological Sort
- BFS & DFS
Strings
- Check for palindrome without reverse
- Check if s is subsequence of t
- Generate all substrings O(n^2)
- Hashing (Rolling Hash)
- KMP
- Longest Common Substring (LCS)
- Longest Increasing Subsequence (LIS)
- Rabin Karp
- Rolling Hash - Find duplicates in a list of strings
- Rolling Hash - Count distinct substrings in a string