Question 1
In Dynamic Programming, what are the two essential properties a problem must possess to be efficiently solved using DP?
Dynamic Programming requires Overlapping Subproblems (subproblems are recomputed multiple times) and Optimal Substructure (optimal solution to the problem contains optimal solutions to subproblems).