Dynamic Programming
Solving overlapping subproblems once and reusing the answers.
1 subject · 4 topics · 1 cheatsheet
Subjects covering this category
1 subject- Subject · Intermediate to Advanced
Tracing, implementing and proving the cost of the classic searching, sorting and graph algorithms, and designing new ones with divide and conquer, backtracking, greedy choice and dynamic programming, in Python, Java and TypeScript.
- Searching and Simple Sorting
- Efficient Sorting
- Design Strategies
Cheatsheets
1 cheatsheet- Cheatsheet · Algorithms
Backtracking, greedy algorithms and dynamic programming on one page: when each fits, and the Python that shows its shape.
In Dynamic Programming itself
4 topics- Algorithms
Dynamic programming: solving a problem from the answers to its overlapping subproblems, top-down with memoisation or bottom-up with a table.
Intermediate to Advanced10 cards · 6 qnot started
- Algorithms
Knapsack and grid dynamic programming: filling a table over items and capacities, or over the cells of a grid, and the loop orders that change the answer.
Intermediate to Advanced9 cards · 4 qnot started
- Algorithms
Sequence dynamic programming in algorithms: longest common subsequence, edit distance and longest increasing subsequence, each a table over prefixes.
Intermediate to Advanced9 cards · 4 qnot started
- Algorithms
Choosing between divide and conquer, dynamic programming, greedy and backtracking in algorithms, by how a problem's subproblems behave.
Intermediate to Advanced7 cards · 3 qnot started