利用贪心算法解决部分背包问题,容量为20 的背包,装入物品的价值分别为{3、9、8、16、20},物品的重量为{4、3、10、12、5},求背包的最大价值量()-笔试面试资料

这是qklbishe.com第5257 篇笔试面试资料
提供答案分析,通过本文《利用贪心算法解决部分背包问题,容量为20 的背包,装入物品的价值分别为{3、9、8、16、20},物品的重量为{4、3、10、12、5},求背包的最大价值量()-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
利用贪心算法解决部分背包问题,容量为20 的背包,装入物品的价值分别为{3、9、8、16、20},物品的重量为{4、3、10、12、5},求背包的最大价值量()

利用贪心算法解决部分背包问题,容量为20 的背包,装入物品的价值分别为{3、9、8、16、20},物品的重量为{4、3、10、12、5},求背包的最大价值量() 醉罢,仰望星空
 
   public static int cal(){         int[] v = new int[]{9,3,20,8,16};         int[] w = new int[]{3,4,5,10,12};         int[][] martix = new int[5][20];         for(int i = 0; i < 5 ;i ++){             for(int j = 0 ; j < 20 ; j++){                 int preSize = i>0 ? martix[i-1][j] :  0;                 // 1. 背包是否可容纳当前物品                 if((j+1) >= w[i]){                     // 1.1 放入当前物品之后,当前物品价值加上剩余空间总价值 和 未放入当前物品的情况下 哪个更大?                     // 1.1.1 放入当前物品之后,当前物品价值加上剩余空间总价值                     int putV = v[i] + (i > 0 && (j+1) > w[i] ? martix[i-1][j-w[i]] : 0);                     if(putV > preSize){                         martix[i][j] = putV;                     }else{                         // 不放为妙                         martix[i][j] = preSize;                     }                 }else{                     // 2. 背包不可容纳当前物品                     martix[i][j] = preSize;                 }             }         }         return martix[4][19];     }

2020-12-28 21:34:23 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 利用贪心算法解决部分背包问题,容量为20 的背包,装入物品的价值分别为{3、9、8、16、20},物品的重量为{4、3、10、12、5},求背包的最大价值量()-笔试面试资料

提供最优质的资源集合

立即查看 了解详情