Q1.What two properties must a problem have for dynamic programming to apply?
Q2.What is memoization?
Q3.In the classic Fibonacci-with-memoization example, what does memoization change the time complexity from and to?
Q4.What is the key difference between top-down (memoized recursion) and bottom-up (tabulation) DP?