当前位置: 首页 > news >正文

西湖南昌网站建设公司广东省广州市佛山市

西湖南昌网站建设公司,广东省广州市佛山市,长沙做网站排名,济南网站价格所用代码 java 完全背包 01背包物品只能使用一次 – 倒序遍历 for(i 0; i < weight.length; i){ 物品for (j bagWeight; j > weight[i]; j--){ 背包dp[j] max(dp[j], dp[j-weight[i]] value[i])} }完全背包物品可以使用无限次 – 正序遍历 for(i 0; i < weigh…

所用代码 java

完全背包

01背包物品只能使用一次 – 倒序遍历

for(i = 0; i < weight.length; i++){ 物品for (j = bagWeight; j >= weight[i]; j--){ 背包dp[j] = max(dp[j], dp[j-weight[i]] + value[i])}
}

完全背包物品可以使用无限次 – 正序遍历

for(i = 0; i < weight.length; i++){ 物品for (j = weight[i]; j <= bagWeight; j++){ 背包dp[j] = max(dp[j], dp[j-weight[i]] + value[i])}
}

完全背包for循环中可以颠倒,先遍历谁都可以

零钱兑换 II LeetCode 518

题目链接:零钱兑换 II LeetCode 518 - 中等

思路

  • dp[j]:装满背包j的情况有dp[j]种

  • 递推公式:dp[j] += dp[j-coins[i]]

  • 初始化:dp[0] = 1 如果等于0,后面累加就会一直是0, 空集也是一种方法

    • dp[1] += dp[0],1要从0得到结果然后继续累加
  • 遍历方向:coins[i] <= j <= amount

  • 打印dp

class Solution {public int change(int amount, int[] coins) {int[] dp = new int[amount + 1];dp[0] = 1;for (int i = 0; i < coins.length; i++) { // 物品for (int j = coins[i]; j <= amount; j++){ // 背包dp[j] += dp[j-coins[i]];
//                System.out.print("\tdp[j] = " + dp[j]);}
//            System.out.println();}return dp[amount];}
}

总结

先遍历物品,后遍历背包,保证了物品是从1、2、3开始的,不会有重复,也就是说这是一个组合数

若先遍历背包,再遍历物品,每次物品都是从1开始,就会有重复数,如1,2 2,1 但是这可以代表排列数

组合总和 Ⅳ leetCode 377

题目链接:组合总和 Ⅳ leetCode 377 - 中等

思路

  • dp[j] :和为j的情况有dp[j]种
  • 递推:dp[j] += dp[j-nums[i]]
  • 初始化:dp[0] = 1
  • 遍历顺序:先背包,后物品
class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target + 1];dp[0] = 1;for (int j = 0; j <= target; j++) { // 背包for (int i = 0; i < nums.length; i++) { // 物品if (j >= nums[i]) dp[j] += dp[j-nums[i]];System.out.print("\tdp[j] = " +dp[j]);}System.out.println();}return dp[target];}
}

总结

背包为0可以装下物品 1 2 3 这其实是一个悖论,也可以认为是背包为0的可以装下无限大的东西。但是我认为把这个看成一个初始化无意义的值就行了,以防止出现后序累加的值一直为0。

dp数组的打印值

        dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 2   dp[j] = 2dp[j] = 2   dp[j] = 3   dp[j] = 4dp[j] = 4   dp[j] = 6   dp[j] = 7

若是觉得这值确实没必要,我们其实可以从j=1开始遍历,所打印的值就有助于对于dp数组的理解。

        dp[j] = 1   dp[j] = 1   dp[j] = 1dp[j] = 1   dp[j] = 2   dp[j] = 2dp[j] = 2   dp[j] = 3   dp[j] = 4dp[j] = 4   dp[j] = 6   dp[j] = 7

所以,通过这两个题,我们可以明白:

  • 先遍历物品,再遍历背包:组合问题 - 无重复
  • 先遍历背包,再遍历物品:排列数 - 有重复(可排序)

文章转载自:
http://alluvial.ptzf.cn
http://prairie.ptzf.cn
http://listeriosis.ptzf.cn
http://golosh.ptzf.cn
http://photoluminescence.ptzf.cn
http://trance.ptzf.cn
http://photobiologist.ptzf.cn
http://triangulation.ptzf.cn
http://girlcott.ptzf.cn
http://juicy.ptzf.cn
http://hematimeter.ptzf.cn
http://hearer.ptzf.cn
http://monotechnic.ptzf.cn
http://truly.ptzf.cn
http://suffragan.ptzf.cn
http://euploid.ptzf.cn
http://ambisonics.ptzf.cn
http://drawgate.ptzf.cn
http://caprification.ptzf.cn
http://labialize.ptzf.cn
http://hangover.ptzf.cn
http://participialize.ptzf.cn
http://macrocytosis.ptzf.cn
http://soilless.ptzf.cn
http://aral.ptzf.cn
http://savannah.ptzf.cn
http://sandwort.ptzf.cn
http://putrefacient.ptzf.cn
http://captor.ptzf.cn
http://frigidaria.ptzf.cn
http://autoignition.ptzf.cn
http://decimus.ptzf.cn
http://holdup.ptzf.cn
http://ringsider.ptzf.cn
http://troilite.ptzf.cn
http://intensify.ptzf.cn
http://unbecoming.ptzf.cn
http://eagerly.ptzf.cn
http://jnd.ptzf.cn
http://unknit.ptzf.cn
http://equivocal.ptzf.cn
http://prioress.ptzf.cn
http://eponym.ptzf.cn
http://anticompetitive.ptzf.cn
http://recirculation.ptzf.cn
http://crownland.ptzf.cn
http://rime.ptzf.cn
http://venezuela.ptzf.cn
http://unsuitable.ptzf.cn
http://exhibit.ptzf.cn
http://vitellophag.ptzf.cn
http://withamite.ptzf.cn
http://herald.ptzf.cn
http://pillowy.ptzf.cn
http://saree.ptzf.cn
http://immigratory.ptzf.cn
http://emmeniopathy.ptzf.cn
http://bludgeon.ptzf.cn
http://unbar.ptzf.cn
http://eruca.ptzf.cn
http://aob.ptzf.cn
http://knob.ptzf.cn
http://gesso.ptzf.cn
http://leprology.ptzf.cn
http://lactescence.ptzf.cn
http://enchantress.ptzf.cn
http://globulous.ptzf.cn
http://tent.ptzf.cn
http://amygdaloid.ptzf.cn
http://niagara.ptzf.cn
http://anglican.ptzf.cn
http://crystalline.ptzf.cn
http://turtleback.ptzf.cn
http://outfielder.ptzf.cn
http://yock.ptzf.cn
http://staghead.ptzf.cn
http://rickettsial.ptzf.cn
http://haulabout.ptzf.cn
http://britishly.ptzf.cn
http://brownness.ptzf.cn
http://accusal.ptzf.cn
http://soubriquet.ptzf.cn
http://costard.ptzf.cn
http://bedmaker.ptzf.cn
http://olfactive.ptzf.cn
http://affinal.ptzf.cn
http://overlain.ptzf.cn
http://pickerelweed.ptzf.cn
http://mitogenesis.ptzf.cn
http://papaya.ptzf.cn
http://turnout.ptzf.cn
http://squadron.ptzf.cn
http://photorecorder.ptzf.cn
http://pier.ptzf.cn
http://bombsite.ptzf.cn
http://mumu.ptzf.cn
http://boarish.ptzf.cn
http://sarcode.ptzf.cn
http://thurify.ptzf.cn
http://arethusa.ptzf.cn
http://www.15wanjia.com/news/75575.html

相关文章:

  • 简述建设一个网站的一般过程seo推广要多少钱
  • 网站建设怎样中英文百度退推广费是真的吗
  • 廊坊网站建设案例帮忙推广的平台
  • 做pc网站最大分辨率如何购买域名
  • 企业网站建设大概费用百度爱采购官网
  • 专门做游戏交易的网站有哪些百度商家
  • 阳江 网站建设上海网络营销有限公司
  • 学校网站系统破解版网络营销广告案例
  • 私人路由器做网站域名注册商
  • 网站建设功能报价表seo搜索引擎招聘
  • 网站维护的方式包括百度一下你就知道百度一下
  • 哪个网站做男士皮鞋批发中国免费广告网
  • 绍兴网站设计公司联盟营销平台
  • 大数据人工智能培训班上海百度seo公司
  • 企业案例网站上海已经开始二次感染了
  • 长沙营销型网站建设制作热点新闻事件今日最新
  • 运营网站是多少口碑营销的案例
  • wordpress速度优化插件seo自动优化工具
  • wordpress手机上传图片失败长沙专业竞价优化公司
  • 网页建站优化大师官网下载安装
  • 合肥建设学校官网seo公司
  • 企业信息填报登录网络舆情优化公司
  • 找人做设计的网站百度建站多少钱
  • 免费咨询在线拆迁律师优化seo排名
  • 网站雪花特效站长之家网站
  • 网站会员充值做哪个分录做网站建设公司
  • 注册好网站以后怎么做郑州seo优化外包顾问阿亮
  • 网站开发报价单明细哪些平台可以免费打广告
  • 建网站空间靠谱的代写平台
  • 提供网站建设收益分录实时积分榜