0/1 Knapsack

T: O(n × W)
Feedback

0/1 Knapsack

Item 0 (w=2, v=3): fill DP row. Max so far: 0.
Items (weight, value)
#0 (2, 3)
#1 (3, 4)
#2 (4, 5)
#3 (5, 6)
Capacity: 8 · Max value: 0
SpeedNormal (500ms)
Parameters

{ items: { weight: number, value: number }[], capacity: number }

Variables
capacity8
itemIndex0
dp[W]0
weight2
value3
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]
Output
Item 0 (w=2, v=3): fill DP row. Max so far: 0.