Master memoization and optimal substructure problems
A classic optimization problem that aims to maximize the total value of items placed in a knapsack without exceeding its capacity. Commonly solved using dynamic programming.