LeetCode 474.一和零

没做出来,最后看了解析,看了半天才懂。

我一开始把这个题当成多重背包来做了,因为有0和1两个参数需要考虑,但是中间很多情况不知道怎么处理。后面看了解析才知道这是个01背包问题,0和1都是一个物品上的属性,只要考虑该物体的放入与否就行。

这个题的处理点在于把背包的容量变成二维,初始的dp[i]表示容量为i的背包可放入的最大物品数,现在d[i][j]为最多有i个0和j个1的str最大子集个数

状态转移方程:dp[i][j] = max(dp[i][j], dp[i - zeroNum][j - oneNum] + 1);

dp[i - zeroNum][j - oneNum]就是上一个str数组的dp状态

 

该题的转移方程:

初始的转移方程:

dp[j]=max(dp[j],dp[j-value[i]]+valve[i]);

可以发现其实[i][j]就是[j],只是二维表示了,而起初的外层循环为遍历物品,这里省去了,因为每次都是只涉及不变和+1,该题中两层遍历都是对背包容量的遍历 

class Solution {
public:int findMaxForm(vector<string>& strs, int m, int n) {vector<vector<int>> dp(m+1,vector<int>(n+1,0));for(string str:strs){int zeroNum=0,oneNum=0;for(char c:str){if(c=='0') zeroNum++;elseoneNum++;}for(int i=m;i>=zeroNum;i--)for(int j=n;j>=oneNum;j--)dp[i][j]=max(dp[i][j],dp[i-zeroNum][j-oneNum]+1);}return dp[m][n];}
};

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/844202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Revit二次开发-WPF ProgressBar 执行程序中显示进度条

Revit开发执行命令时如果时间长,界面会顶住,导致用户误以为程序未响应,解决方法:增加WPF ProgressBar 进度条执行程序中显示进度条,提示命令还是进行中, 实现流程: 新建一个WPF,Window启动时加载一个事件Loaded=“Window_Loaded”,用于显示进度条在WPF后台,新建一个异…

安卓自定义UI组件开发流程

安卓自定义ui组件开发流程 开发安卓自定义UI组件的流程大致可以分为以下几个步骤&#xff1a; 确定需求和设计&#xff1a; 确定需要自定义的UI组件的功能和外观。设计组件的交互逻辑和视觉效果。 创建自定义组件类&#xff1a; 创建一个新的Java类&#xff0c;继承自View、V…

K-means 聚类模型详解

K-means 聚类模型详解 K-means 是一种常用的无监督学习算法&#xff0c;用于将数据集分成 K 个簇。其目标是最小化各个簇内数据点到簇中心的距离平方和。K-means 广泛应用于图像压缩、市场细分、模式识别等领域。 算法步骤 初始化: 随机选择 K 个初始簇中心&#xff08;质心…

Sql入门教程

SQL&#xff0c;全称Structured Query Language&#xff0c;也就是结构化查询语言&#xff0c;它是和数据库沟通的语言。想象一下&#xff0c;数据库是个巨大的仓库&#xff0c;里面放着各种信息&#xff0c;而SQL就是你用来告诉仓库管理员&#xff08;数据库&#xff09;你要做…

gulp入门8:serites

在Gulp中&#xff0c;gulp.series 是一个非常重要的函数&#xff0c;它允许你将多个任务&#xff08;task&#xff09;组合成一个顺序执行的序列。这对于那些需要按照特定顺序执行的任务特别有用。下面是对 gulp.series 的深入研究&#xff0c;包括其用法、特点以及注意事项。 …

Java中的转换流InputStreamReader 和 OutputStreamWriter

在Java的I/O&#xff08;输入/输出&#xff09;库中&#xff0c;InputStreamReader 和 OutputStreamWriter 是两个重要的桥接类&#xff0c;它们被用来在字节流&#xff08;InputStream 和 OutputStream&#xff09;和字符流&#xff08;Reader 和 Writer&#xff09;之间进行转…

【主题广泛|投稿优惠】2024年区块链、网络与物联网国际会议(BNIT 2024)

2024年区块链、网络与物联网国际会议&#xff08;BNIT 2024&#xff09; 2024 International Conference on Blockchain, Networks, and the Internet of Things 【重要信息】 大会地点&#xff1a;深圳 大会官网&#xff1a;http://www.icbnit.com 投稿邮箱&#xff1a;icbni…

k8s cephfs(动态pvc)

官方参考文档&#xff1a;GitHub - ceph/ceph-csi at v3.9.0 测试版本 Ceph Version Ceph CSI Version Container Orchestrator Name Version Tested v17.2.7 v3.9.0 Kubernetes v1.25.6 安装Ceph-csi Step 1 Download GitHub - ceph/ceph-csi at v3.9.0 rootsd-k8s…

揭秘智慧校园:可视化技术引领教育新篇章

随着科技的飞速发展&#xff0c;我们的生活方式正在经历一场前所未有的变革。而在这场变革中&#xff0c;学校作为培养未来人才的重要基地&#xff0c;也在不断地探索与创新。 一、什么是校园可视化&#xff1f; 校园可视化&#xff0c;就是通过先进的信息技术&#xff0c;将学…

永久免费SSL证书领取流程

一、SSL证书的前世今生 起源&#xff1a; SSL证书起源于1994年&#xff0c;当时网景公司&#xff08;Netscape&#xff09;推出了安全套接字层&#xff08;SSL&#xff0c;Secure Sockets Layer&#xff09;协议&#xff0c;这是一种加密通信协议&#xff0c;用于在客户端和服…

武汉城投城更公司与竹云科技签署战略协议,携手构建智慧城市新未来!

2024年5月16日&#xff0c;武汉城投城更公司与深圳竹云科技股份有限公司&#xff08;以下简称“竹云”&#xff09;签订战略合作协议&#xff0c;双方将深入推进产业项目合作。 签约现场&#xff0c;双方围绕产业项目合作方向、路径和内容等进行了全面深入交流。城投城更公司党…

第五届武汉纺织大学ACM程序设计竞赛 个人题解(待补完)

前言&#xff1a; 上周周日教练要求打的一场重现赛&#xff0c;时长五个小时&#xff0c;题目难度还行&#xff0c;除了部分题目前我还写不出来之外&#xff0c;大部分题都写完或补完了&#xff0c;这边给出比赛链接和我的代码&#xff08;有些是队友的&#xff09;和题解。 正…

这些项目,我当初但凡参与一个,现在也不至于还是个程序员

10年前&#xff0c;我刚开始干开发不久&#xff0c;我觉得这真是一个有前景的职业&#xff0c;我觉得我的未来会无限广阔&#xff0c;我觉得再过几年&#xff0c;我一定工资不菲。于是我开始像很多大佬说的那样&#xff0c;开始制定职业规划&#xff0c;并且坚决执行。但过去这…

Midjourney设计服装5步实操分享!(实操干货系列)

2k字讲清楚如何在有限素材的基础上&#xff0c;用MJ随机生成设计服装&#xff0c;附本人实操步骤图~ 灵感来源&#xff1a;既然Midjourney&#xff08;MJ&#xff09;能够参考图片进行绘图&#xff0c;那么&#xff0c;提供一些素材&#xff0c;借由MJ的随机成图来寻找一些服装…

香橙派Kunpeng Pro评测

有幸受邀评测香橙派与华为鲲鹏在2024年5月12刚刚联合发布的新品香橙派Kunpeng Pro。 本文将从软硬件、AI算法测试等角度简单分享一下博主拿到板子以来感受与所做的评测。 一、硬件 香橙派Kunpeng Pro实物图 处理器方面&#xff0c;香橙派Kunpeng Pro采用了4核64位armv8架构处…

gulp入门6:watch

当使用Gulp进行前端开发自动化时&#xff0c;gulp.watch 是一个非常有用的功能&#xff0c;用于监视文件或文件夹的变化&#xff0c;并在这些文件或文件夹发生变化时执行特定的任务。以下是关于 gulp.watch 的深入讲解&#xff1a; 1. gulp.watch 的基本用法 gulp.watch 的基…

生产者延迟消息和重试机制

messageDelayLevel1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 延迟消息级别public PutMessageResult putMessage(final MessageExtBrokerInner msg) {//事务消息处理if (tranType MessageSysFlag.TRANSACTION_NOT_TYPE|| tranType MessageSysFlag.TRANSACT…

Android manifest清单文件意外权限来源和合并规则

问题背景 当自写APP发现无缘无故多申请了多个权限,其中一个就是:android.permission.WAKE_LOCK. 一想就知道如果并非自己在APP main中引入的,那就是依赖的库清单文件导入进来的. 定位问题 定位手段 1.manifest-merger-buildVariant-report.txt 根据其内容可知, WAKE_LOCK 权…

揭秘!编写高质量代码的关键:码农必知的黄金法则!

文章目录 一、保持代码的简洁与清晰二、遵循良好的命名规范三、注重代码的可读性四、利用抽象与封装五、遵循SOLID原则六、关注代码性能七、确保代码安全性《码农修行&#xff1a;编写优雅代码的32条法则》编辑推荐内容简介目录前言/序言 在编程的世界里&#xff0c;每一位码农…

源达投顾的客户服务质量怎么样?

在金融服务行业中&#xff0c;客户服务质量是衡量一个公司成功与否的关键因素之一。源达投顾作为一家专业的投资顾问机构&#xff0c;其客户服务质量一直备受关注。那么&#xff0c;源达投顾的客户服务质量怎么样&#xff1f; 一、客户满意度调查方法 为了全面、客观地了解源…