Skip to main content
Link
Search
Menu
Expand
Document
(external link)
Algo Notes
Home
Basics
OOP
Time Complexity
Python Refresher
C++ Refresher
Algorithms
Recursion
Greedy Algorithms
Dynamic Programming
Searching Algorithms
Sorting Algorithms
Bit Manipulations
Math Algorithms
Randomized Algorithms
Sliding Window Patterns
Monotonic Stacks/Queues
Deterministic Finite Automation (DFA)
String Algorithms
Tricks
Data Structures
Hash Maps
Heaps
Trie
Trees
Basics
Binary Search Trees
Balanced BSTs
Morris Traversal
Graphs
Graph Basics
BFS/DFS
Union-Find Disjoin Sets
Single-Source Shortest Path Algorithms
Topological Sorting
Minimum Spanning Tree
Algorithms
Recursion
Recursion
Three Laws of recursion:
Must have a base case
Must have a recursive call to the function itself
The algorithm must change its state and move towards the base case
To-DO