1function knapsack(weights, values, capacity) {
2 const dp = Array(items + 1).fill().map(() => Array(capacity + 1).fill(0));
3 for (let i = 1; i <= items; i++) {
4 for (let w = 1; w <= capacity; w++) {
5 if (weights[i-1] > w) dp[i][w] = dp[i-1][w];
6 else dp[i][w] = max(values[i-1] + dp[i-1][w-weights[i-1]], dp[i-1][w]);
7 }
8 }
9 return dp[items][capacity];
10}