Skip to main content

Dynamic Programming

Dynamic Programming (DP) is a powerful technique for solving optimization problems by breaking them down into simpler subproblems and storing solutions to avoid redundant calculations.

Learning Map​

Dynamic programming concepts and problem types organized by complexity.

Prerequisites​

What's in scope​

  • DP Fundamentals: Core concepts including overlapping subproblems, optimal substructure, and implementation approaches
  • Classic DP Problems: Essential problems like Fibonacci, climbing stairs, house robber, and coin change
  • Advanced DP Patterns: Complex patterns including knapsack, edit distance, and matrix chain multiplication
  • DP on Trees & Graphs: Applying dynamic programming to tree and graph structures

How to use this section​