Greedy method

Divide and conquer

Dynamic programming