Knapsack DP solves problems where you select items subject to constraints while optimizing some value. The classic version asks: given items with weights and values, maximize value without exceeding capacity.
But the pattern extends far beyond this. You'll use it for subset sum variants, partition problems, counting valid combinations, and optimization under multiple constraints. The key is recognizing when your problem has "choose or skip" structure with additive constraints.