---
comments: true
icon: material/table-pivot
---

# Chapter 14. &nbsp; Dynamic programming

![Dynamic programming](../assets/covers/chapter_dynamic_programming.jpg){ class="cover-image" }

!!! abstract

    Streams merge into rivers, and rivers merge into the sea.
    
    Dynamic programming combines the solutions of small problems to solve bigger problems, step by step leading us to the solution.

## Chapter contents

- [14.1 &nbsp; Introduction to dynamic programming](intro_to_dynamic_programming.md)
- [14.2 &nbsp; Characteristics of DP problems](dp_problem_features.md)
- [14.3 &nbsp; DP problem-solving approach¶](dp_solution_pipeline.md)
- [14.4 &nbsp; 0-1 Knapsack problem](knapsack_problem.md)
- [14.5 &nbsp; Unbounded knapsack problem](unbounded_knapsack_problem.md)
- [14.6 &nbsp; Edit distance problem](edit_distance_problem.md)
- [14.7 &nbsp; Summary](summary.md)
