Dynamic Programming
Greedy algorithm