【动态规划】二维费用的背包问题

news2024/11/16 15:46:12

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:题目解析
🌎推荐文章:【LeetCode】winter vacation training

在这里插入图片描述


目录

  • 👉🏻一和零

👉🏻一和零

原题链接:一和零

mycode(超出时间限制):

class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        int len = strs.size();
        //创建dp表
        vector<vector<vector<int>>> dp(len+1,vector<vector<int>>(m+1,vector<int>(n+1)));//三维dp表
        //dp表初始化,i、j、k轴初始化都是0可以省略这一步骤了

        //开始填表
        for(int i = 1;i<=len;i++)
        {
            for(int j = 0;j<=m;j++)
            {
                for(int k = 0;k<=n;k++)
                {
                    dp[i][j][k] = dp[i-1][j][k];
                    map<char,int> num;
                    for(auto e : strs[i-1]) num[e]++;//计算字符串中0和1的个数
                    if(j-num['0']>=0&&k-num['1']>=0)
                        dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-num['0']][k-num['1']]+1);
                }
            }
        }
        return dp[len][m][n];

    }
};

在这里插入图片描述
时间优化:

class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        int len = strs.size();
        //创建dp表
        vector<vector<vector<int>>> dp(len+1,vector<vector<int>>(m+1,vector<int>(n+1)));//三维dp表
        //dp表初始化,i、j、k轴初始化都是0可以省略这一步骤了

        //开始填表
        for(int i = 1;i<=len;i++)
        {
            for(int j = 0;j<=m;j++)
            {
                for(int k = 0;k<=n;k++)
                {
                    dp[i][j][k] = dp[i-1][j][k];
                    int a = 0,b = 0;
                    for(auto e : strs[i-1])
                    {
                        if(e=='0') a++;
                        else b++;
                    }
                    if(j-a>=0&&k-b>=0)
                        dp[i][j][k] = max(dp[i-1][j][k],dp[i-1][j-a][k-b]+1);
                }
            }
        }
        return dp[len][m][n];

    }
};

这里摒弃掉了map

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

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

相关文章

智慧城市的新引擎:物联网技术引领城市创新与发展

目录 一、引言 二、物联网技术与智慧城市的融合 三、物联网技术在智慧城市中的应用 1、智慧交通管理 2、智慧能源管理 3、智慧环保管理 4、智慧公共服务 四、物联网技术引领城市创新与发展的价值 五、挑战与前景 六、结论 一、引言 随着科技的日新月异&#xff0c;物…

国家妇女节放假是法定的假日

在这个充满活力和希望的春天&#xff0c;我们迎来了一个特殊的节日——国家妇女节。这是一个属于所有女性的节日&#xff0c;是一个庆祝女性成就、关爱女性权益的时刻。在这个特殊的日子里&#xff0c;我们不禁要问&#xff1a;国家妇女节放假是法定假日吗&#xff1f;让我们一…

北斗卫星引领智能油气管线革新

北斗卫星引领智能油气管线革新 现代化的油气管线系统已成为国家经济发展的重要基础设施&#xff0c;而北斗卫星则为这些管线注入了新的活力。北斗卫星作为中国自主研发的卫星导航定位系统&#xff0c;其准确度和稳定性在全球范围内享有盛誉。在智能化时代的背景下&#xff0c;…

Pytorch线性回归实现(原理)

设置梯度 直接在tensor中设置 requires_gradTrue&#xff0c;每次操作这个数的时候&#xff0c;就会保存每一步的数据。也就是保存了梯度相关的数据。 import torch x torch.ones(2, 2, requires_gradTrue) #初始化参数x并设置requires_gradTrue用来追踪其计算历史 print(x…

炼石入选国家互联网应急中心CNCERT首批数据安全支撑单位

2024年2月22日&#xff0c;国家计算机网络应急技术处理协调中心&#xff08;以下简称CNCERT&#xff09;公示发布了第十届CNCERT网络安全应急服务支撑单位遴选结果&#xff0c;炼石成功入选首批“数据与软件安全评测领域”应急服务支撑单位&#xff01;本次遴选根据申报单位综合…

MySQL学习笔记(一)数据库事务隔离级别与多版本并发控制(MVCC)

一、数据库事务隔离级别 数据库事务的隔离级别有4种&#xff0c;由低到高分别为Read uncommitted &#xff08;读未提交&#xff09;、Read committed&#xff08;读提交&#xff09; 、Repeatable read&#xff08;可重复读&#xff09; 、Serializable &#xff08;串行化&a…

世界的尽头是sql注入漏洞

sql注入漏洞大家都了解吧&#xff1f;但是人类也会有类似sql注入型的漏洞存在&#xff01; sql注入本质是数据内容被当做命令执行。 举个简单的例子&#xff1a; 某国面临全国性战争&#xff0c;发起全国性的捐款捐物&#xff0c;基本流程是&#xff1a; 居民填写自愿捐助单由军…

连接kafka报错:java.io.IOException: Can‘t resolve address:

修改电脑host文件:C:\Windows\System32\drivers\etc\hosts 加上一行 192.168.1.XXX MHA_SLAVE2&#xff08;192.168.1.XXX 这个是安装kafka 的服务器地址&#xff0c;MHA_SLAVE2是kafka的容器id&#xff09;

基于深度学习的驾驶员分心驾驶行为(疲劳+危险行为)预警系统使用YOLOv5+Deepsort实现驾驶员的危险驾驶行为的预警监测

人物专注性检测 项目快速预览 主要不同地方为&#xff1a; 1、疲劳检测中去掉了点头行为的检测&#xff0c;仅保留闭眼检测和打哈欠检测。 2、Yolov5的权重进行了重新训练&#xff0c;增加了训练轮次。 3、前端UI进行了修改&#xff0c;精简了部分功能。 项目介绍 该项目…

数字时代下的内部审计蜕变:探索数字化转型的七大关键领域

写在前面 内部审计是一种独立的、客观的确认和咨询活动&#xff0c;包括鉴证、识别和分析问题以及提供管理建议和解决方案。狭义的数字化转型是指将企业经营管理和业务操作的各种行为、状态和结果用数字的形式来记录和存储&#xff0c;据此再对数据进行挖掘、分析和应用。广义…

企业上了BI,做了很多报表,老板为什么还是不满意?

上次讲了企业有了ERP为什么还要上BI&#xff0c;但是部分企业在部署商业智能BI后&#xff0c;没有感受到商业智能BI的高价值&#xff0c;让很多企业老板感觉不太满意。 经过分析后我们发现&#xff0c;很多企业是冲着商业智能BI的火热部署的&#xff0c;并不清楚商业智能BI的具…

AWTK 开源串口屏开发(12) - 记事本应用

记事本是一个很常用的应用&#xff0c;用来编辑和查看文本文件非常方便。在传统的的串口屏中&#xff0c;开发一个记事本应用&#xff0c;即使可能&#xff0c;也是非常麻烦的事情。在 AWTK 串口屏中&#xff0c;内置文件模型和文件选择对话框&#xff0c;实现一个简单的记事本…

Enzo Life Sciences Cortisol(皮质醇) ELISA kit

皮质醇又称为氢化可的松&#xff0c;是一种由胆固醇合成的类固醇激素。它是肾上腺皮质产生和分泌的主要糖皮质激素。皮质醇在血液中以游离皮质醇的形式存在&#xff0c;或与皮质类固醇结合球蛋白(CBG)结合。皮质醇水平在早上7点左右最高&#xff0c;晚上最低。皮质醇可以调节新…

docker部署springboot jar包项目

docker部署springboot jar包项目 前提&#xff0c;服务器环境是docker环境&#xff0c;如果服务器没有安装docker&#xff0c;可以先安装docker环境。 各个环境安装docker&#xff1a; Ubuntu上安装Docker&#xff1a; ubuntu离线安装docker: CentOS7离线安装Docker&#xff1…

类和对象 02【C++】

文章目录 一、 构造函数(初始化列表)1. 初始化列表2. explicit 关键字3. static成员 二、 友元1. 友元函数2.友元类 三、 内部函数四、 匿名对象五、 拷贝对象时的一些编译器优化 一、 构造函数(初始化列表) 进一步理解构造函数&#xff0c;我们知道创建对象时&#xff0c;编译…

昇腾芯片解析:华为自主研发的人工智能处理器全面分析

在当今科技发展的浪潮中&#xff0c;昇腾芯片作为一种新兴的处理器&#xff0c;正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的&#xff1f;这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用&#xff0c;以便读者对其有更全面的…

【C++】设计模式:建造者、原型、单例

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍设计模式&#xff1a;建造者、原型、单例。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xf…

2024年泰迪智能科技合作伙伴战略大会暨产教融合实训基地落成仪式圆满结束

2024年泰迪智能科技合作伙伴战略大会 暨产教融合实训基地落成仪式 3月6日&#xff0c;2024年泰迪智能科技合作伙伴战略大会暨产教融合实训基地落成仪式在泰迪智能科技产教融合实训基地举行&#xff0c;本次合作伙伴战略大会围绕“龙腾山海&#xff0c;共赴新程 ”主题开展&…

小程序开发平台源码系统 功能强大 各种行业小程序开发功能 带完整的搭建教程

小程序开发平台源码系统旨在为用户提供一套高效、稳定、易用的开发工具&#xff0c;帮助用户快速搭建起自己的小程序平台。通过该系统&#xff0c;用户可以轻松实现小程序的定制开发&#xff0c;满足各种行业的需求。同时&#xff0c;还提供了丰富的功能和插件&#xff0c;帮助…

day37 贪心算法part6

738. 单调递增的数字 中等 提示 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 不知道怎么讲思路……以9287举例&#xff0c;…