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] }