请把前面的背包算法示例代码用JS重写一遍
时间: 2023-02-09 10:58:50 浏览: 176
改进的java背包算法
```
const knapsack = (items, capacity) => {
const matrix = Array(items.length + 1)
.fill(null)
.map(() => Array(capacity + 1).fill(0));
for (let i = 1; i <= items.length; i++) {
const { weight, value } = items[i - 1];
for (let j = 0; j <= capacity; j++) {
if (weight > j) {
matrix[i][j] = matrix[i - 1][j];
} else {
matrix[i][j] = Math.max(
matrix[i - 1][j],
matrix[i - 1][j - weight] + value
);
}
}
}
return matrix[items.length][capacity];
};
const items = [
{ weight: 2, value: 6 },
{ weight: 2, value: 10 },
{ weight: 3, value: 12 }
];
console.log(knapsack(items, 5))
```
上面是背包算法的 JavaScript 示例代码。其中,函数 knapsack() 接受两个参数:items 和 capacity。items 是物品数组,其中每个物品都有 weight 和 value 属性;capacity 是背包的容量。函数返回背包中最大价值。
阅读全文