{ items: { weight: number, value: number }[], capacity: number }
1dp[0..W] = 0 (capacity W = 8)2for i = 0 to n-1: → i = 0 (w=2, v=3)3 for w = W down to 0:4 if w >= weight[i]: dp[w] = max(dp[w], dp[w-weight[i]] + value[i])5return dp[W]
1function knapsack(items: { weight: number; value: number }[], W: number): number {2 const dp = new Array(W + 1).fill(0);3 for (const { weight, value } of items) {4 for (let w = W; w >= weight; w--)5 dp[w] = Math.max(dp[w], dp[w - weight] + value);6 }7 return dp[W];8}