力扣刷题记录(18)LeetCode:474、518、377、322

news2025/3/16 15:48:41

 

目录

474. 一和零

518. 零钱兑换 II 

377. 组合总和 Ⅳ 

 322. 零钱兑换

 总结:


474. 一和零

 

这道题和前面的思路一样,就是需要将背包扩展到二维。

class Solution {
public:
    int findMaxForm(vector<string>& strs, int m, int n) {
        vector<vector<int>> dp(m+1,vector<int>(n+1,0));
        for(auto s:strs)
        {
            int oneNum=0,zeroNum=0;
            for(auto c:s)
            {
                if(c=='0')  zeroNum++;
                else if(c=='1') oneNum++;
            }
            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];
    }
};

518. 零钱兑换 II 

 

每个硬币可以无限制取,完全背包问题。先确定dp[i]表示的含义,i表示背包容量,dp[j]表示该容量有多少种方法。再确定递推公式,dp[j]+=dp[j-coins[i]];。最后确定遍历顺序,因为每个硬币都可以无限制取,所以j的遍历顺序应该为正序。

注意:在01背包中为了防止元素重复取,采用倒序

class Solution {
public:
    int change(int amount, vector<int>& coins) {
        vector<int> dp(amount+1,0);
        dp[0]=1;
        for(int i=0;i<coins.size();i++)
        {
            for(int j=coins[i];j<=amount;j++)
            {
                dp[j]+=dp[j-coins[i]];
            }
        }
        return dp[amount];
    }
};


377. 组合总和 Ⅳ 

 

 这题和上题的区别在于这题是排列,上题是组合。组合问题先遍历物品后遍历背包容积,排列问题先遍历背包容积后遍历物品。进入循环里面思考一下就明白了怎么回事了。

class Solution {
public:
    int combinationSum4(vector<int>& nums, int target) {
        vector<int> dp(target+1,0);
        dp[0]=1;
        //遍历背包容积
        for(int j=0;j<=target;j++)
        {
            //遍历物品
            for(int i=0;i<nums.size();i++)
            {
                if(j<nums[i] || dp[j]>INT_MAX-dp[j-nums[i]])   continue;
                dp[j]+=dp[j-nums[i]];
            }
        }
        return dp[target];
    }
};

 322. 零钱兑换

 

这题的不同之处在于求最小硬币个数,初始化的时候注意初始化为最大值。

class Solution {
public:
    int coinChange(vector<int>& coins, int amount) {
        vector<int> dp(amount+1,INT_MAX);
        dp[0]=0;
        for(int i=0;i<coins.size();i++)
        {
            for(int j=coins[i];j<=amount;j++)
            {
                //如果dp[j-coins[i]]==INT_MAX,将超出int的范围
                if(dp[j-coins[i]]!=INT_MAX)
                    dp[j]=min(dp[j],dp[j-coins[i]]+1);
            }
        }
        if(dp[amount]==INT_MAX) return -1;
        return dp[amount];
    }
};

 总结:

01背包问题和完全背包问题的主要区别是元素是否可以无限制取。

在解决问题的方式上,如果是求组合就先遍历物品再遍历背包容积,如果是求排列就先遍历背包容积再遍历物品。

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

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

相关文章

tvbox最新接口配置

TVBox是在Github的开源项目&#xff0c;本身是一个空壳软件&#xff0c;可免费使用及再开发。安装后需要配置接口才能正常使用。 TVBox&#xff0c;也被称为网络电视盒子&#xff0c;是一种可以连接到电视的设备&#xff0c;使电视具有智能电视的功能。TVBox的主要功能是通过网…

mysql 26day 数据库双主双从 搭建mycat 数据库负载均衡 读写分离

目录 搭建一个(双主双从) &#xff08;然后搭建mycat&#xff09;四台主机配置master1 (主库1)master2 (主库2)slave 1(从库1)master1 (主库1)slave 1(从库1)如果配置出错 需要从这里从新配置 写入数据(测试)mycat安装java安装mycat编辑文件server.xml编辑文件schema.xml配置 m…

网站被恶意扫描怎么办(上WAF)

在网络安全领域&#xff0c;有一大类工具被广泛使用&#xff0c;且作用不可忽视&#xff0c;它就是网络安全扫描器。扫描器是一种专门设计用来评估计算机、网络或者应用中已知的弱点的计算机程序&#xff0c;但是很多人恶意使用&#xff0c;找到网站弱点进行攻击。 扫描器的种…

【csapp】cachelab

文章目录 Part APart B32 * 3264 * 6461 * 67 实验全程参考大佬的博客CS:APP3e 深入理解计算机系统_3e CacheLab实验 &#xff0c;感觉大佬在矩阵转置那块介绍的还是有些简略&#xff0c;我自己又做了点动图加以补充理解。膜拜大佬&#xff01; Part A 先解决解析命令行参数的…

fpga verilog rs232 发送模块实现

RS-232是一种串行通信协议&#xff0c;用于在计算机和其他外部设备之间进行数据传输。RS-232定义了电气特性、信号级别、机械特性和传输速率等规范&#xff0c;为串行通信提供了一种标准化的接口。 RS-232通常使用DB9连接器&#xff0c;用于传输和接收数据、控制信号以及地线连…

VMware17Pro虚拟机安装Linux CentOS 7.9(龙蜥)教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装Linux4.1 新建虚拟机4.2 安装操作系统4.2.1 选择 ISO 映像文件4.2.2 开启虚拟机4.2.3 选择语言4.2.4 软件选择4.2.5 禁用KDUMP4.2.6 安装位置配置4.2.7 网络和主机名配置…

小学班委有哪些职位

在成长的道路上&#xff0c;班委是一个不可或缺的角色。它不仅是一个职位&#xff0c;更是一份责任和担当。对于孩子们来说&#xff0c;成为班委不仅意味着荣誉&#xff0c;更意味着在集体中发挥自己的力量&#xff0c;为班级做贡献。 那么&#xff0c;小学班委有哪些职位呢&am…

小学班级管理方法和措施

开学了&#xff0c;宝贝们步入小学的大门&#xff0c;新环境、新同学、新起点。如何为孩子们营造一个和谐、有序的学习环境&#xff1f;这离不开我们班主任的精心管理。 制定明确的班规 教室里&#xff0c;同学们有秩序地坐着&#xff0c;这得益于我们班的班规。但班规不是摆设…

Java SPI 机制介绍和实战

目录 什么是 Java SPI Java SPI 原理 Java SPI 使用场景 1. 框架扩展与插件化 2. 服务加载与扩展 3. 组件化和模块化设计 4. 数据转换和格式化 5. 插件化应用程序 Java SPI 实战 步骤 1&#xff1a;定义服务接口 步骤 2&#xff1a;实现服务提供者 步骤 3&#xf…

UE5 C++(九)— 静态、动态加载类和资源

文章目录 前提静态加载类和资源静态加载资源静态加载类 动态加载类和资源动态资源动态加载类 前提 有必要说一下&#xff0c;静态这块内容加载时我用UE5.2版本出现调用静态资源不是显示问题&#xff0c;修改后容易崩。所以&#xff0c;这里不建议5.2版本&#xff0c;直接用5.3…

VS2005环境下编译C++报错

WinGenerateKey.obj : error LNK2011: 未链接预编译对象&#xff1b;映像可能不能运行 解决&#xff1a;连接器->输入&#xff0c;添加&#xff1a;..\WinGenerateKey\Debug\stdafx.obj 或者 ..\WinGenerateKey\Release\stdafx.obj 报错&#xff1a;fatal error C1083: Can…

【数据结构和算法】找到最高海拔

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 前缀和的解题模板 2.1.1 最长递增子序列长度 2.1.2 寻找数组中第 k 大的元素 2.1.3 最长公共子序列…

【WSL2】安装和配置ubuntu

文章目录 1. 安装WSL22. 安装ubuntu2.1. 通过Microsoft Store2.1. 通过命令行 3. ubuntu的使用3.1. 创建管理员root账户3.2. 换源3.3. 安装图形化界面GNOME 1. 安装WSL2 在控制面板 - 程序 - 程序与功能中点击启用或关闭Windows功能&#xff0c;选择 虚拟机平台适用于Linux的W…

阅读2023:让每一天都徜徉于书海之中

阅读&#xff0c;是中华民族的优良传统&#xff0c;也是创新发展的永续动力。2023年初&#xff0c;教育部、中央宣传部等八部门印发《全国青少年学生读书行动实施方案》&#xff0c;推动青少年学生阅读深入开展&#xff0c;促进全面提升育人水平。 阅读不仅是文化传承的重要手…

AI智能五子棋这个逆袭.高.智.商.人群的神器竟然是它果断入手

「当当狸智能五子棋」新品现已震撼上市发售啦&#xff0c;将迎来一个全新的对弈时代 市面上首款将智能语音交互&#xff0c;AI陪玩功能融合在棋盘里&#xff0c;且不用摆子收纳的新式棋盘五子棋。 一款打破传统&#xff0c;全面革新&#xff0c;融合AI智能陪玩模式的五子棋诞…

JavaScript基础知识点总结:从零开始学习JavaScript(二)

如果大家感感兴趣也可以去看&#xff1a; &#x1f389;博客主页&#xff1a;阿猫的故乡 &#x1f389;系列专栏&#xff1a;JavaScript专题栏 &#x1f389;ajax专栏&#xff1a;ajax知识点 &#x1f389;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 学习…

Vue使用Element table表格格式化GMT时间为Shanghai时间

Vue使用Element表格格式化GMT时间为Shanghai时间 说明 阿里巴巴java开发规范规定&#xff0c;数据库必备gmt_create、gmt_modified字段&#xff0c;使用的是GMT时间&#xff0c;在中国使用必然要转换我中国时间。 在阿里巴巴的Java开发规范中&#xff0c;要求每个表都必备三…

英特尔A770显卡介绍与解读

基础介绍 英特尔A770显卡。这是英特尔推出的一款高性能显卡&#xff0c;属于他们的Arc系列。这个系列的显卡主要面向游戏玩家和专业内容创作者&#xff0c;提供高性能图形处理能力。 A770显卡配备了先进的特性&#xff0c;例如支持硬件级光线追踪、AI加速技术&#xff0c;以及…

【小白专用】C# 压缩文件 ICSharpCode.SharpZipLib.dll效果:

插件描述&#xff1a; ICSharpCode.SharpZipLib.dll 是一个完全由c#编写的Zip, GZip、Tar 、 BZip2 类库,可以方便地支持这几种格式的压缩解压缩, SharpZipLib 的许可是经过修改的GPL&#xff0c;底线是允许用在不开源商业软件中&#xff0c;意思就是免费使用。具体可访问ICSha…

【数据结构】——期末复习题题库(2)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…