There are many problems that can be solved using Dynamic programming e.g. Longest increasing subsequence. This problem can be solved by using 2 approaches
If the problem has overlapping sub-problems property then use Memoization, else it depends on the problem
overlapping sub-problems
Memoization