- TRIE- Very useful for Bit operations
- Dynamic Programming
- Recursion= Unoptimized, eats all stack space, time complexity cen be O(N)[check!]
- Top Down Approach= Reverse engineer the solution from the top. Think from the top. Think about and from the final answer.
- Bottom Up Approach= Start from the base case. Build answer from bottom, n=1
Always first apply Greedy approach, then if not successful, try Dynamic Programming.