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

江苏建设外贸公司网站广州互帮物流哪家公司做的网站

江苏建设外贸公司网站,广州互帮物流哪家公司做的网站,湖南省郴州市中考成绩查询,网站建设pc端文章目录前言一、一和零#xff08;力扣474#xff09;二、完全背包前言 1、一和零 2、完全背包理论基础 一、一和零#xff08;力扣474#xff09; 求装满这个背包最多有多少个物品 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集… 文章目录前言一、一和零力扣474二、完全背包前言 1、一和零 2、完全背包理论基础 一、一和零力扣474 求装满这个背包最多有多少个物品 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素集合 x 是集合 y 的 子集 。 背包容量是二维的 m个0 n个1 限制 思路 动规五部曲 1、确定dp[]数组以及下标含义 dp[i][j]i个0 j个1 最多装了dp[i][j]个物品 2、确定递推公式 dp[i][j] 可以由前一个strs里的字符串推导出来strs里的字符串有zeroNum个0oneNum个1。 dp[i][j] 就可以是 dp[i - zeroNum][j - oneNum] 1。 然后我们在遍历的过程中取dp[i][j]的最大值。 所以递推公式dp[i][j] max(dp[i][j], dp[i - zeroNum][j - oneNum] 1); 对比下01背包的递推公式dp[j] max(dp[j], dp[j - weight[i]] value[i]); 对比一下就会发现字符串的zeroNum和oneNum相当于物品的重量weight[i]字符串本身的个数相当于物品的价值value[i]。 这就是一个典型的01背包 只不过物品的重量有了两个维度而已。 3、dp数组如何初始化 01背包的dp数组初始化为0就可以。 4、确定遍历顺序 外层for循环遍历物品内层for循环遍历背包容量且从后向前遍历 5、举例推导dp数组 以输入[“10”,“0001”,“111001”,“1”,“0”]m 3n 3为例 最后dp数组的状态如下所示 class Solution {public int findMaxForm(String[] strs, int m, int n) {int[][] dp new int[m1][n1];int oneNum;int zeroNum;for(int x 0; xstrs.length; x){oneNum 0;zeroNum 0;for(char ch : strs[x].toCharArray()){if( ch 0){zeroNum;}else oneNum;}for(int im;izeroNum;i--){for(int jn;joneNum;j--){dp[i][j] Math.max(dp[i][j],dp[i-zeroNum][j-oneNum]1);}}}return dp[m][n];} }二、完全背包 完全背包和01背包的区别所在 物品在完全背包中可以使用无数次。 而在01背包一维dp数组中倒序遍历背包容量就是为了保证每个物品只取一次那么如何能让这个物品无限次使用呢改为正序遍历 for(int i 0; i weight.length; i) { // 遍历物品for(int j weight[i]; j bagWeight; j) { // 遍历背包容量dp[j] max(dp[j], dp[j - weight[i]] value[i]);} }遍历顺序 两层for循环可以相互颠倒 遍历物品在外层循环遍历背包容量在内层循环按行状态如图 for (int i 0; i weight.length; i){ // 遍历物品for (int j weight[i]; j bagWeight; j){ // 遍历背包容量dp[j] Math.max(dp[j], dp[j - weight[i]] value[i]);}}遍历背包容量在外层循环遍历物品在内层循环按列状态如图 for (int i 1; i bagWeight; i){ // 遍历背包容量for (int j 0; j weight.length; j){ // 遍历物品if (i - weight[j] 0){dp[i] Math.max(dp[i], dp[i - weight[j]] value[j]);}}完整代码 //先遍历物品再遍历背包 private static void testCompletePack(){int[] weight {1, 3, 4};int[] value {15, 20, 30};int bagWeight 4;int[] dp new int[bagWeight 1];for (int i 0; i weight.length; i){ // 遍历物品for (int j weight[i]; j bagWeight; j){ // 遍历背包容量dp[j] Math.max(dp[j], dp[j - weight[i]] value[i]);}}for (int maxValue : dp){System.out.println(maxValue );} }
http://www.dnsts.com.cn/news/85785.html

相关文章:

  • 建筑企业网站有哪些政务信息网站建设研究
  • 邯郸网站制作费用国建设文化艺术协会网站
  • 自己建私人网站做外贸不好做0元做游戏代理
  • 网站开发 英文文章教人做衣服的网站
  • 网站策划书的内容百度推广优化技巧
  • 商城类网站建设报价安康市电梯公司
  • 网站模块怎么恢复网罗设计网站
  • pc端网站用vs做网站
  • 怎么查网站做站点地图招代理网站建设公司
  • 盐山国外网站建设虹口广州网站建设
  • 网站改标题降权专业做app下载网站有哪些
  • 有人从搜索引擎找网站建设吗什么是seo优化?
  • 买了空间和域名 怎么做网站wordpress媒体ip地址
  • 如何发布自己做的网站dede网站 设置404 错误页面
  • 图书馆信息化网站建设毕业设计做音乐网站
  • 自己制作一个网站需要多少钱海外购物网
  • 生产建设兵团第三师政务网站APP和网站是一样吗
  • 自己做的网站怎么链接火车头采集中国建筑协会官网
  • 文化馆门户网站建设的作用及意义网络职业有哪些
  • 沭阳住房和城乡建设局网站网站推广总结
  • 文化建设网站枣庄网页制作公司
  • 外贸建站哪个最便宜宁波市建设网
  • 自己做民宿在什么网站上投放新闻稿发布平台
  • 北方外贸网站建设外贸客户如何开发
  • 学网站制作多少钱wordpress微信登录调用
  • 4徐汇区网站建设如何设计制作企业网站
  • 狠狠做网站 百度一下深圳专业建网站公司排行
  • php就是做网站吗营销qq手机版
  • 网站开速度几秒湘乡网站seo
  • 百度云服务器搭建网站步骤深圳市住房和建设保障局