function knapsack( V , n , vw ) {
if(V==0||n==0) return 0
if(n==1&&V>=vw[0][0]) return vw[0][1]
let dp = []
//算法优化,优化空间复杂度
// dp[n] 表示背包的体积为n时所能放下 的最大价值
// dp[n] = max( dp[n],dp[n-vi] + wi )
for(let i=0;i<V+1;i++) dp[i] = 0
for(let i=0;i<vw.length;i++) {
for(let j = V;j>=vw[i][0];j--) {
dp[j] = Math.max(dp[j],dp[j-vw[i][0]]+vw[i][1])
}
}
//return dp[n][V]
return dp[V]
}
京公网安备 11010502036488号