8. Dynamic Programming I
Learning Objectives
By the end of this chapter, you will be able to:
- Analyze whether the dynamic programming approach can be applied to a given problem
- Compare and choose the right approach between memoization and tabulation
- Choose an appropriate caching solution using memoization
- Analyze a problem using a naive brute-force approach
- Develop a dynamic programming solution by implementing progressively optimized algorithms
In this chapter, you will be introduced to the dynamic programming approach. This chapter will guide you through implementing this approach for solving some well-known problems in computer science.