Implementing dynamic programming algorithms is more of an art than just a programming technique. Dynamic programming problems are also very commonly asked in coding interviews but if you ask anyone who is preparing for coding interviews which are the toughest problems asked in interviews most likely the answer is going to be dynamic programming.
Implementing dynamic programming algorithms is more of an art than just a programming technique. Dynamic programming problems are also very commonly asked in coding interviews but if you ask anyone who is preparing for coding interviews which are the toughest problems asked in interviews most likely the answer is going to be dynamic programming.
In fact, dynamic programming problems are very easy to solve once you understand the theory in depth and know certain tricks. Most of the dynamic programming problems share some common elements and if you know how to identify those things you can come up with solutions easily.
In this course, you will learn
1. The in-depth theory behind dynamic programming
2. Recursion and backtracking techniques
3. A step by step approach to come up with dynamic programming solutions to a given problem from scratch
4. Applying step by step approach for one-dimensional dynamic programming problems with detailed examples
5. Applying step by step approach for multi dimensional dynamic programming problems with detailed examples
6. How to analyze the time and space complexities of recursive solutions as well as dynamic programming solutions
Introduction to recursion and why it is important for dynamic programming.
Exercise questions to practice recursion.
Solutions to the exercise problems.
An introduction to backtracking , which is a very useful programming technique to solve many algorithm problems.
Backtracking helps us implement naive recursive solutions from scratch which can later be optimized using Dynamic programming techniques.
Exercise problems to practice backtracking.
An introduction to Dynamic programming, different approaches to implement dynamic programming solutions and pros and cons of each of those approaches.
Exercise problem to practice top down and bottom up approach for implementing Dynamic programming solution.
Introduction to two dimensional dynamic programming problems and a detailed explanation of how the step by step approach can be used to solve such problems with an example.
Example used : Minimum cost patch to travel from top left corner in a grid to bottom right corner of the same grid.
An introduction to optimization problems, optimal substructure property and recursive optimization procedure.
A detailed explanation of step by step approach to solve any dynamic programming solution from scratch with knapsack problem as the example.
A detailed explanation of how to reconstruct the actual solution to Dynamic programming problems with knapsack problem as the example.
Exercise to better understand the step by step approach by applying the approach to solve a nice dynamic programming problem.
Introduction to identifying and solving one dimensional dynamic programming problems with an example. The example problem is optimum way to rob a row of houses without being caught by the police.
A detailed explanation about using step by step approach to solve the rod cutting problem from scratch.
O(nlgn) solution for "Longest Increasing Subsequence"
https://www.geeksforgeeks.org/longest-monotonically-increasing-subsequence-size-n-log-n/
Exercise problems to practice step by step approach for solving one dimensional dynamic programming problems.
1. Minimum cost of reaching the last stone by jumping a maximum of X stones at a time
2. Counting the number of ways in which a string can be broken completely into valid words.
A detailed explanation of how we can use step by step approach to solve one of the classic two dimensional dynamic programming problem.
Longest common subsequence.
A detailed explanation of using step by step approach to solve the "minimum number of deletions required to make a string palindrome" problem.
A detailed explanation of solving "Edit distance" problem using step by step approach.
A detailed explanation of solving "Regular expression matching" problem using step by step approach and also analyzing its time and space complexity.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.