Dynamic Programming21 sections · 916 units
Open in Course

Pattern - Choosing the Right Variation

Decision guide

Quick reference for knapsack variations:

1.1. "Can we reach sum XX?" → Boolean DP, backward loop, OR operation.

2.2. "How many ways to reach XX?" → Counting DP, loop order matters (coins outer for combinations).

3.3. "Each item has limited copies" → Binary decomposition, then 0/1 knapsack.

4.4. "Two constraints" → 2D (two-dimensional) DP array, backward loops in both dimensions. When you see a new problem, ask: what am I trying to improve? (max/min/count/boolean) How many times can I use each item? (once/unlimited/bounded) How many constraints? (one/two/more)