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

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];}
};

 

相关文章:

  • Window VScode配置Conda教程(成功版)
  • hadoop学习笔记
  • nginx编译安装手把手教学
  • Flutter 中的 Flow 小部件:全面指南
  • 嵌入式C语言指针详细解说
  • AI爆文写作:使用AI来帮你拆分吧,过程丝滑,效率翻倍:拆选题、拆标题、拆结构、拆逻辑、拆段落、收集素材吧!
  • 深度学习500问——Chapter09:图像分割(3)
  • 开发者的福音:免去搭建服务,让你的应用开发变得像吃蛋糕一样简单!
  • 无人机侦察:雷达系统概述
  • 【驱动】串口硬件流控和RS485自动收发
  • 2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理
  • 【面试八股总结】索引(二):B+树数据结构、索引使用场景、索引优化、索引失效
  • 【加密与解密(第四版)】第十五章笔记
  • TiDB学习4:Placement Driver
  • springboot项目部署到linux服务器
  • JS 中的深拷贝与浅拷贝
  • 【翻译】babel对TC39装饰器草案的实现
  • HTTP那些事
  • JavaScript 基本功--面试宝典
  • Python学习之路16-使用API
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • supervisor 永不挂掉的进程 安装以及使用
  • tweak 支持第三方库
  • 编写符合Python风格的对象
  • 聊聊hikari连接池的leakDetectionThreshold
  • 微信支付JSAPI,实测!终极方案
  • 项目实战-Api的解决方案
  • 新书推荐|Windows黑客编程技术详解
  • 一个完整Java Web项目背后的密码
  • 云大使推广中的常见热门问题
  • 2017年360最后一道编程题
  • 仓管云——企业云erp功能有哪些?
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • !!java web学习笔记(一到五)
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #传输# #传输数据判断#
  • ${ }的特别功能
  • (16)Reactor的测试——响应式Spring的道法术器
  • (19)夹钳(用于送货)
  • (C++)八皇后问题
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (ZT)一个美国文科博士的YardLife
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (五)MySQL的备份及恢复
  • (五)关系数据库标准语言SQL
  • ***利用Ms05002溢出找“肉鸡
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .ai域名是什么后缀?
  • .apk 成为历史!
  • .FileZilla的使用和主动模式被动模式介绍
  • .Net 6.0 处理跨域的方式
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式