背包问题参考:https://www.jianshu.com/p/a66d5ce49df5
w = [2, 3, 4, 5]
v = [3, 4, 5, 6] totol=9------------构造过程如图
function beibao(w, v, total) {
//w代表容量,v代表价值,total代表总容量限制
let V = new Array(w.length)
for (let i = 0; i < w.length; i++) {
V[i] = new Array(total)
}
for (let i = 0; i < w.length; i++) {
for (let j = 0; j < total; j++) {
V[i][j] = 0
if (w[i] <= j + 1) {
V[i][j] = Math.max(P(i - 1, j), P(i - 1, j - w[i]) + v[i])
}
}
}
function P(i, j) {
return V[i] && V[i][j] || 0
}
return V
}
let w = [2, 3, 4, 5]
let v = [3, 4, 5, 6]
console.log(beibao(w, v, 10))