Can be used to solve two types of problems:
- Combinatoric, and
- Optmization problems.
We break the problem into small problems, then we find the smallest problem to solve.
These problems ends with the question: "How many?". The end goal is to count something.
Optimization problems have the goal of minimizing or maximizing some function.
- Define the objective function.
- Identify base/edge cases.
- Recurrence relation. Is the transiction function of one subproblem to another.
- Order of computation. The order each subproblem are solved.
- Location of the answer. Where we are looking for the answer.
There are some examples problems in this repository, along with the solution.