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
    19 topics · 168 cardsnot started

Cheatsheets

1 cheatsheet
  • Cheatsheet · Algorithms

    Backtracking, greedy algorithms and dynamic programming on one page: when each fits, and the Python that shows its shape.

    6 entries here

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