- Dynamic Programming
- Back Tracking
- Usage: generate all combinations, permuations, subsets
- Brief Explain: Backtracking can be seen as an optimized way to brute force which is to evaluate every possibility. In backtracking you stop evaluating a possibility as soon it breaks some constraint provided in the problem.
- Sliding Windows