Final answer:
The statement is false; dynamic programming indeed works on problems with overlapping subproblems, storing the results to avoid redundant computations.
Step-by-step explanation:
The statement "Dynamic Programming approach only works on problems with non-overlapping subproblems" is false. In fact, dynamic programming (DP) is particularly well-suited for problems that involve overlapping subproblems, as it saves time by storing the results of these subproblems in a table (memoization or tabulation) and reusing them in other parts of the computation, rather than recomputing them each time they occur.
Key examples of dynamic programming include the Fibonacci sequence problem or the Knapsack problem, which both have overlapping subproblems that are efficiently solved using the DP approach. This method ensures that each subproblem is only solved once, which significantly reduces the time complexity of the problem.