当前位置: 首页 > 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/541553/

相关文章:

  • 流量型网站沈阳建设工程交易中心官网
  • 网站做微信支付宝支付宝商业网站设计
  • 投诉举报网站建设要求网站开发前台代码和后台代码
  • 国外网站怎么上高手优化网站
  • 网站模板 带后台无锡集团网站建设
  • 网站开发用什么框架新开传奇网站韩版
  • 眉山网站设计服装设计考研哪些大学
  • 网站前端设计要做什么的需要网站建设的人多吗
  • 专门做网站的公司与外包公司有哪些北京做网站建设的公司哪家好
  • 太原谁家网站做的好改wordpress的wp_admin
  • 灵宝网站建设商品展示型网站有哪些
  • 培训中心网站建设论文广州做网站报价
  • 一般网站建设公司怎么收费linux做网站方便吗
  • 网站开发需要什么人员网站开发代理商
  • 口碑好的定制网站建设网页设计与网站开发第三版课后答案
  • 工程建筑公司网站长兴县住房和城乡建设局网站
  • 网站制作最陇南市城乡建设局网站
  • 网站建设 工作方案国外免实名域名
  • 湖南常德广宇建设网站高档vi设计公司
  • 自己建个网站多少钱wordpress主题 SEO优化
  • 做网站学习什么仿站网站建设
  • 文山知名网站建设哪家好网站信息发布系统
  • 墨尔本网站建设电子商务师证官网
  • 哪个网站做汽车保养比较好微分销系统定制专家
  • 直播是网站怎么做网站建设注册什么公司
  • 宁波住房城乡建设局网站群晖搭建wordpress修改固定链接
  • 门户网站收录互联网挣钱新方法
  • 常州制作网站信息制作网站需要多少钱
  • 国内知名设计网站建设银行天津招聘网站
  • 网站搭建好显示建设中wordpress怎么接入支付