刷代码随想录有感(109):动态规划——01背包问题|一和零

news2025/7/9 9:22:18

题干:

代码 :

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

思路:将m, n视为背包的属性,故问题转化为了将m,n容量的背包转满最多能装多少个,而每样物品只能装一次,问题转化成了01背包问题。

定义dp数组:容量为m,n的背包所能装下的最大数量,故定为二维数组。

递推公式:dp[m][n] = max(dp[m][n], dp[m-zeroNum][n-oneNum] + 1),‘0’、‘1’数目是物品的重量,1(个)是物品的价值。实际上是三维数组,只不过背包有两个属性而已,用类似是一维数组方法写。

初始化:dp[0][0] = 0,其他都可以用这个推出来。

遍历顺序:先物品后背包,背包要倒序遍历。遍历物品时同时统计‘0’、‘1’数量。

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

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

相关文章

SolidWorks软件天津代理商:官方授权亿达四方,企业的信赖之选

在快速发展的制造业领域&#xff0c;设计与创新是推动企业持续前进的核心动力。作为世界领先的三维机械设计解决方案&#xff0c;SolidWorks以其强大的功能、直观的操作界面以及高效的协作能力&#xff0c;成为众多天津企业加速产品开发周期、提升市场竞争力的首选工具。而在天…

C语言 | Leetcode C语言题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {if (headA NULL || headB NULL) {return NULL;}struct ListNode *pA headA, *pB headB;while (pA ! pB) {pA pA NULL ? headB : pA->ne…

交易盈利秘诀分享

在交易的过程中&#xff0c;大多数投资者容易被每天纷繁变化的行情所迷惑&#xff0c;看不清交易的本质&#xff0c;他们每天追求确定性&#xff0c;追求暴利&#xff0c;追求传说中的圣杯&#xff0c;然后&#xff0c;迷失在交易利益的得失之中&#xff0c;无法悟透交易的准则…

为微信小程序项目添加eslint

背景 在使用vscode开发微信小程序的过程中&#xff0c;修改js的时候发现没有报错提示&#xff0c;让我很不习惯&#xff0c;所以想为微信小程序项目添加eslint配置 编码实战 为微信小程序配置ESLint可以遵循以下步骤&#xff1a; 安装ESLint及其相关插件 首先&#xff0c;…

F611V36 SOT23-6 4.2V 气压检测和充放电三合一咪头专用芯片-昱灿

F911 是一款咪头专用芯片&#xff0c;集成涓流、恒流、恒压三段式充电管理&#xff0c;符合锂电池充电规范。充电输入可直接从USB口取电&#xff0c;充电电流默认530mA。 集成 50mΩ 的放电 MOS 开关&#xff0c;无需外部MOS&#xff0c;大大降低BOM成本。内置MOS导通PWM控制&a…

Hydra常用爆破命令

常用破解命令 SSH 破解 hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip sshFTP 破解 hydra ftp://ip -l 用户名 -P 密码字典 -t 线程(默认16) -vV hydra ftp://ip -l 用户名 -P 密码字典 -e ns -vVWeb 登陆…

Linux根目录挂载点(/dev/mapper/centos-root)扩容

如果我们在安装系统是采用自定义分区的话&#xff0c;就可以提前规划好这个事情。但是如果平常没注意就直接采用默认安装的方式的话。一旦 根目录的容量耗尽&#xff0c;将会影响业务的运行。今天我们来扩容逻辑卷。 默认安装的话会给home目录分比较多的空间&#xff0c;我们可…

闲置资源共享平台

摘 要 随着共享经济的高速发展以及人们对物品的需求方面也越来也丰富&#xff0c;而且各大高校的大学生们的购买力也越来越强&#xff0c;随之而来的问题就是身边的闲置资源也越来越多&#xff0c;但是也有许多的大学生对物品的要求方面不是很高&#xff0c;也愿意买下经济实惠…

kimi+的+能为论文写作+出什么?我帮你试过了!

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 Kimi是月之暗面科技有限公司开发的个性化智能助手功能。相比kimi&#xff0c;Kimi能够提供个性化定制服务&#xff0c;根据用户特定需求提供更专业深入的辅助&#xff0c;实现一对一的智…

国内出版社数字化资源的现状与挑战:一场未充分利用的数字转型

**概述&#xff1a;**在当前数字化高速发展的时代背景下&#xff0c;国内教育出版社在数字化资源的开发与应用上面临着诸多挑战和不足。本文将针对读者提出的问题和反馈&#xff0c;探讨国内教育出版社数字化资源存在的问题&#xff0c;并分析可能的原因和改进方向。 **正文&a…

数据资产:打破数据孤岛,实现数据互联互通,构建企业智能化转型的重要桥梁。通过高效整合与利用数据资源,推动企业决策的科学化、精准化,助力企业迈向智能化新时代

目录 一、引言 二、数据孤岛现象及其影响 三、打破数据孤岛&#xff0c;实现数据互联互通 1、制定统一的数据标准和管理规范 2、建设统一的数据平台 3、推广数据共享和开放文化 四、数据资产在智能化转型中的重要作用 1、推动企业决策的科学化、精准化 2、优化企业运营…

【ARM】MDK在debug模式下断点的类型

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同情况下&#xff0c;设置的断点的类型是什么。 2、 问题场景 在debug模式下&#xff0c;经常通过断点去调试代码。但是对于断点的类型不了解&#xff0c;不清楚断点为什么会被进入。不了解在不同语句或者情…

本科且非专业学历|艺术自由职业者成功赴美国威斯康星大学麦迪逊分校自费访学

R老师只有本科学历且不是艺术专业&#xff0c;但有独创的艺术作品&#xff0c;其希望在一年的访问学者期间&#xff0c;拓宽艺术视野&#xff0c;同时学习艺术理论&#xff0c;以弥补学术背景薄弱的短板。最终我们为其落实了美国威斯康星大学麦迪逊分校访问学者职位。 R老师背景…

使用lua开发apisix自定义插件并发布

接到老大需求&#xff1a;需要对cookie进行操作&#xff0c;遂查询apisix的自带插件&#xff0c;发现有&#xff0c;但不满足&#xff0c;于是自己开发了一个插件并部署&#xff0c;把开发部署流程写在这里打个日志怕以后忘掉。 一、需求 插件很简单&#xff0c;就是在reques…

Ethena 更新代币经济学,逼着空投用户作长期 Hodler?

撰文&#xff1a;Yangz&#xff0c;Techub News 本文来源香港Web3媒体Techub News 6 月 18 日&#xff0c;Ethena 更新代币经济学&#xff0c;计划在 Ethena 生态和即将推出的 Ethena Chain 中引入通用再质押机制&#xff0c;并对任何通过空投获得 ENA 的用户实施「锁定」要求…

泽攸科普——电镜的检测标准及检测方法有哪些?

电镜是指利用电子束取代可见光束来观察和成像的仪器&#xff0c;包括扫描电镜&#xff08;SEM&#xff09;、透射电镜&#xff08;TEM&#xff09;和透射扫描电镜&#xff08;STEM&#xff09;等。它们的检测标准和方法各有不同&#xff0c;具体如下&#xff1a; 1、扫描电镜&…

探索强化学习(人工智能重要子领域):原理、算法及应用

引言 人工智能&#xff08;Artificial Intelligence, AI&#xff09;作为一个广泛的领域&#xff0c;旨在使机器具备模仿或超越人类智能的能力。机器学习&#xff08;Machine Learning, ML&#xff09;是实现这一目标的重要手段&#xff0c;通过数据驱动的方法&#xff0c;使机…

mysql学习——SQL中的DDL和DML

SQL中的DDL和DML DDL数据库操作&#xff1a;表操作 DML添加数据修改数据删除数据 学习黑马MySQL课程&#xff0c;记录笔记&#xff0c;用于复习。 DDL DDL&#xff1a;Data Definition Language&#xff0c;数据定义语言&#xff0c;用来定义数据库对象(数据库&#xff0c;表&…

2024年6月抖音最新引流模板 7天300w流量打法 不做烂大街的玩法

在这个信息爆炸的时代&#xff0c;抖音作为全球最大的短视频平台&#xff0c;吸引了亿万用户的关注。然而&#xff0c;如何在如此庞大的用户群中脱颖而出&#xff0c;让你的内容被更多人看到呢&#xff1f;本文将向你介绍2024年抖音最新的引流模板&#xff0c;帮助你的新号流量…

3GPP R18冻结,哪些信息值得关注?

这两天网上到处都是R18冻结的新闻&#xff0c;小枣君也凑个热闹&#xff0c;聊聊这个话题。 首先给小白科普一下&#xff0c;所谓的R18&#xff0c;全称是Release-18。它是通信国际标准组织3GPP&#xff08;第三代合作伙伴计划&#xff09;所推出协议标准的一个版本。 自从1998…