5 Dynamic Programming - OBST - Coin Change
5 Dynamic Programming - OBST - Coin Change
Dynamic Programming (DP) is a technique for solving complex problems by breaking them down into
smaller, overlapping subproblems. It stores solutions to subproblems to avoid redundant
calculations, making it efficient for optimization problems.
DP is useful in problems where the goal is to find the most optimal solution among all possible
solutions. It is commonly applied in areas such as computer science, operations research, and
artificial intelligence.
• This technique is called Memoization because previously computed values are stored in a
lookup table.
• This approach solves the problem iteratively by first solving the smallest subproblems and
gradually building up the solution for the main problem.
• The subproblem results are stored in a table (array) and used to compute larger solutions.