代码随想录 day07 四数相加 赎金信 三数之和 四数之和

news/发布时间2024/5/20 8:11:29

四数相加

题目需要找满足和为0的四元组 但是只要求统计个数 不要求具体的四元组
而且四元组是可以重复的 考虑使用hash map
由于设计到四个元素
先遍历两个集合 记录一下两个集合的元素和的所有可能值
记录在map中 为什么要用map 因为需要同时记录出现的值和出现的次数 值作为键 次数作为值

然后再遍历一遍剩下两个集合的所有可能值
如果 target-(k + m) == i + j
就是说明存在一个这样的四元组
count计数器自增

赎金信

本质上跟字母异位词是一个思路
先放map里对应位置的字母++
然后另一个集合--
如果大于0说明不满足
应该用数组模拟会更节省空间一些

三数之和

题目和四数相加最大的区别就是加上了元素不能重复的条件
这样就不能简单的像之前的hash map的解决思路 因为会重复

这题先对数组排序,因为不需要返回数组下标
然后利用双指针进行收缩
注意nums[i] 要与 nums[i - 1]进行比较去重

但是对于去重的逻辑十分的复杂 目前也没有太搞明白 需要mark一下 周日复盘一下

四数之和

这题一样要求是不重复的四元组

hash map依然是去重逻辑十分的麻烦
考虑使用双指针进行收缩
整体思路和三数之和一样
但是剪枝的时候
要考虑到target nums[i] nums[i - 1] 都是负数的情况下
剪枝只能在正数的时候剪枝 负数不能这样子剪
四元组比较大 判断部分需要转换成long类型

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

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

相关文章

git使用

git本地使用引用自知乎用户CatOneTwo点击跳转初次配置查看已有配置 git config --list配置用户名和邮箱 git config --global user.name "用户名" git config --global user.email 邮箱地址简单使用查看仓库状态 git status初始化仓库 git inti添加文件到缓冲区 git …

ASP.NET Core 鉴权授权三(添加自定义授权策略)

Program.cs #region 授权 builder.Services.AddAuthorization(option => {//添加自定义授权策略option.AddPolicy("MyPolicy",p => p.RequireClaim(ClaimTypes.NameIdentifier,"1")); }); #endregionTestController.cs 应用自定义授权策略 [ApiContr…

PDCA PCBA

其实,你并不懂P—D—C—A管理循环 - 知乎 (zhihu.com) PDCA是管理循环,是全面质量管理所应遵循的科学程序。具体来说,PDCA是指:P——Plan,计划;D——Do,实施或者执行;C——Check,检查或者总结;A——Action,行动或处置。全面质量管理活动的全部过程,就是质量计划的制…

聊聊ChatGLM-6B部署与微调的深入理解

ChatGLM的部署,主要是两个步骤:在Github上下载chatglm的库文件 在Hugging Face上下载模型参数与配置文件ChatGLM包 从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,…

PowerBI:如何在以SharePoint文件做为数据源?

问题描述: 有朋友最近询问,在PowerBI中如何以SharePoint中的文件做为数据源,进行报告的设计开发?今天抽一些时间,为大家做一个样例,供大家参考。 解决方案:找到将要使用的SharePoint中文件的Web link地址,此步最为关键; 打开Power BI,通过Web link文件地址,成功文件作…