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

小型网站建设网站 制作 工具

小型网站建设,网站 制作 工具,教务系统网站建设模板下载,广州设计事务所474. 一和零 题目链接:474. 一和零 题目描述 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子…

474. 一和零

题目链接:474. 一和零
题目描述

给你一个二进制字符串数组 strs 和两个整数 m 和 n 。

请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。

如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。

示例 1:

输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3
输出:4
解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4 。
其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"} 。{"111001"} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 。

示例 2:

输入:strs = ["10", "0", "1"], m = 1, n = 1
输出:2
解释:最大的子集是 {"0", "1"} ,所以答案是 2 。

提示:

  • 1 <= strs.length <= 600
  • 1 <= strs[i].length <= 100
  • strs[i] 仅由 '0' 和 '1' 组成
  • 1 <= m, n <= 100
算法分析:

之前的背包问题中对于背包的描述只有一种维度,那就是背包的容量。

而这道题需要对背包有两种约束维度,也就是0和1的个数m,n,我们可以看成是容量a和容量b。

而每一个字符串我们看作一个物品,它有两个属性,即0的个数和1的个数。

接下来我们按照动态规划五部曲来。

定义dp数组及下表含义:

对于dp[i][j],我们将其定义为容量a,b分别为i,j的背包,最多能装下的物品数量为dp[i][j]。

递推公式:

类似于一种维度背包的递推公式:dp[j]=max(dp[j],dp[j-weigth[i]+value[i]);

我们只需要将背包的一维属性变成二维就可以了:dp[i][j]=max(dp[i][j],dp[i-mNumb][j-nNumb]+1);

初始化:

dp[0][0]=0,容量a,b皆为0的背包所能装下的物品数量为0。

遍历顺序:

先遍历物品在遍历背包容量(对于背包容量的两种维度可以任意顺序遍历,但必须都是倒叙遍历)。

打印dp数组:

对于这道题dp数组的所表示的含义比较难理解,打印出来去推导验证的话也是比较困难的。

代码如下:

class Solution {public int findMaxForm(String[] strs, int m, int n) {int[][] dp = new int[m + 1][n + 1];//dp[m][n]表示0的个数m,1的个数为n的集合的元素个数for(int i = 0; i < strs.length; i++) {//遍历每个元素int mNum = 0;//记录每个元素种0的个数int nNum = 0;//记录每个元素种1的个数for(int j = 0; j < strs[i].length(); j++) {if(strs[i].charAt(j) == '0') mNum++;else nNum++;}//倒叙遍历每个元素中0和1的个数for(int j = m; j >= mNum; j--) {for(int k = n; k >= nNum; k--) {dp[j][k] = Math.max(dp[j][k], dp[j - mNum][k - nNum] + 1);}}}return dp[m][n];}
}

总结

这道题还是比较难的,对于背包的属性需要考虑两个维度(0的个数和1的个数),不过我们只需要将其看成容量a和容量b就可以了,还是01背包的思路。

http://www.yayakq.cn/news/639165/

相关文章:

  • 北京建设厅网站首页做 网站 技术支持 抓获
  • 做网站的是怎么赚钱的大型企业网站源码
  • wordpress 对话徐州seo企业
  • 网站开发要计入无形资产吗怎么做视频解析网站
  • 合肥网站建设百家号做网站需要编程基础
  • 龙港做网站店铺湘潭网站建设是什么
  • 自适应好还是响应式网站好微信小商城怎么开通
  • 做网站的思路怎么写网站弹出
  • 做网站用什么软件知乎php 免费网站空间申请
  • 汽车配件网站建设wordpress 存储管理
  • 龙岗网站seo网站建设邀标书
  • 新开传奇网站合击专业上海网站建设公司哪家好
  • 如何做学校网站app大型购物网站服务器
  • 苏州新区网站制作公司中国核工业第五建设有限公司待遇怎么样
  • 手机视频网站建设模板网站建设报价
  • 哪些做海报比较好的网站电力工程造价信息网
  • 怎么做电商网站免费学编程网站
  • 营销型网站优点网站系统类型
  • 重庆建设公司宁波网站扔优化
  • 手机端网站怎么制作手机建网站 教程
  • 怎么设计自己的网站wordpress阅读权限
  • 做项目管理的网站如何申请域名建网站
  • php做网站群晖wordpress站点地址
  • 微网站 无锡seo常用的工具
  • 网站建设的具体奖罚措施wordpress密码hello
  • 营销网站搭建如何确认wordpress使用什么主题
  • 内力网站建设广州制作外贸网站
  • 网站黑链代码redis 在网站开发中怎么用
  • 哪个网站可以做竖屏广州最新消息
  • 怎么做自己的品牌网站兼职做ppt是哪个网站