同步操作将从 wangjili/Algorithm 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package lintcode.dp;/*** Created by Dell on 2017年08月29日.*/public class BackpackI {//在n个物品中挑选若干物品装入背包,最多能装多满?//状态转移方程为:dp[i][j]=dp[i-1][j-A[i]]||dp[i-1][j]public int backPack(int m, int[] A) {boolean[] dp=new boolean[m+1];//初始化第一列dp[0]=true;//初始化第一行if(A[0]<=m){dp[A[0]]=true;}for(int i=1;i<A.length;i++){for(int j=m;j>0;j--){dp[j]=j>=A[i]&&dp[j-A[i]]?true:dp[j];}}int res=m;while(res>0&&!dp[res--]);return res+1;}//给出n个物品的体积A[i]和其价值V[i],将他们装入一个大小为m的背包,最多能装入的总价值有多大?//状态转移方程dp[i][j]前i件物品组成j重量下的最大价值,dp[i][j]=Math.max(dp[i-1][j](不使用i物品),dp[i-1][j-A[i]]+V[i](使用i物品))public int backPackII(int m, int[] A, int[] V) {int[] dp=new int[m+1];//初始化使用第一件物品的情况if(A[0]<=m){dp[A[0]]=V[0];}for(int i=1;i<A.length;i++){for(int j=m;j>0;j--){dp[j]=j>=A[i]?Math.max(dp[j],dp[j-A[i]]+V[i]):dp[j];}}int res=0;for(int j=1;j<=m;j++){res=Math.max(res,dp[j]);}return res;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。