Dynamic Programming Vs Recursion