Skip to main content
Back to course
Log in
Get started
Someone wanted to learn this too, so Grasp built them a personal learning path.
Create your own
Mastering Algorithms and Leetcode
·
Module 10
Dynamic Programming from First Principles
1
Fundamentals of Dynamic Programming
Identify the state, transition, base cases, and evaluation order of a dynamic program.
Identify the state, transition, base cases, and evaluation order of a dynamic program.
2
Implementing Top-Down Memoization
Convert a repeated recursive subproblem into top-down memoization.
Convert a repeated recursive subproblem into top-down memoization.
3
Converting Memoization to Tabulation
Convert a memoized recurrence into bottom-up tabulation.
Convert a memoized recurrence into bottom-up tabulation.
4
Space Optimization in Dynamic Programming
Reduce a dynamic program's memory when each state depends only on recent states.
Reduce a dynamic program's memory when each state depends only on recent states.
5
Solving One-Dimensional Take-or-Skip Optimization
Solve a one-dimensional take-or-skip optimization problem.
Solve a one-dimensional take-or-skip optimization problem.
6
Dynamic Programming: Grid Path Optimization
Solve a grid path-counting or minimum-cost problem with tabulation.
Solve a grid path-counting or minimum-cost problem with tabulation.
7
Solving Subset-Sum with 0/1 Dynamic Programming
Solve a subset-sum decision problem with zero-one dynamic programming.
Solve a subset-sum decision problem with zero-one dynamic programming.
8
Dynamic Programming for Longest Common Subsequence
Compute the longest common subsequence of two strings with two-dimensional dynamic programming.
Compute the longest common subsequence of two strings with two-dimensional dynamic programming.
Previous module
Greedy Decisions, Intervals, and Connectivity
Next module
High-Value Advanced Interview Patterns