【LeetCode454. 四数相加 II】——map型哈希表
admin
2024-02-03 01:15:16
0

454. 四数相加 II

给你四个整数数组 nums1nums2nums3nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

示例 1:

输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]
输出:2
解释:
两个元组如下:
1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 0
2. (1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 0

示例 2:

输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]
输出:1

提示:

  • n == nums1.length
  • n == nums2.length
  • n == nums3.length
  • n == nums4.length
  • 1 <= n <= 200
  • -228 <= nums1[i], nums2[i], nums3[i], nums4[i] <= 228

思考:

本题乍一看十分复杂,其实只要运用map这种哈希类型能够很容易求解。

map型哈希表的难点就在于确定key值和value值,而在本题,我们可以将四个数组两两分组,这样我们需要存储的其实就是两个数组中两数之和,以及该两数和出现的次数。

map型哈希表:

这道题我们选择使用unordered_map这种类型的哈希表,设置int型变量count存储相加等于0的次数。

首先通过两层for循环,遍历nums1、nums2中所有的两两组合,计算它们的和并存储在哈希表中。

接着我们只需要用同样的方式遍历nums3、nums4这两个数组,依然两两组合,并求和,接着用判断语句检索哈希表中是否存在对于的值,能与之相加为0即可。

完整代码:

#include
#include
#includeusing namespace std;class Solution {
public:int fourSumCount(vector& nums1, vector& nums2, vector& nums3, vector& nums4) {unordered_map um;int count = 0;//相加等于0出现的次数//利用两层for循环,检索nums1、nums2中所有组合,存储在um容器中for (int a : nums1) {for (int b : nums2) {um[a + b]++;}}//利用两层for循环,检索nums3、nums4中所有组合,更新countfor (int a : nums3) {for (int b : nums4) {if (um[0 - (a + b)] > 0){count += um[0 - (a + b)];}}}return count;}
};

参考:

代码随想录


往期回顾:
LeetCode1. 两数之和
LeetCode202. 快乐数
LeetCode350. 两个数组的交集 II
LeetCode349. 两个数组的交集
LeetCode1002. 查找共用字符

相关内容

热门资讯

大唐御医的误诊:以为是绝症肿瘤... 声明:本文内容结合公开史料与中医典籍进行艺术创作,旨在人文科普,不传播封建迷信,请读者朋友保持理性阅...
赛英电子治理“黑洞”:IPO前... 本文时代商业研究院 作者:陆烁宜 来源丨时代商业研究院 作者丨陆烁宜 编辑丨郑琳 IPO前夕董秘及...
万亿市值迫近 北交所托举实体创... 【编者按】新质生产力加速成长、产业升级步履铿锵、首都功能不断提升……“十四五”时期,我们见证了北京高...
确认了!她接棒父亲任董事长 公司召开第四届董事会第十九次会议选举公司副董事长石思慧担任公司董事长,石平湘担任副董事长。此外,公司...
促消费!6部门发布19条举措加... 6月24日 为推动大力提振消费 中国人民银行等6部门对外发布 《关于金融支持提振和扩大消费的指导意见...
退税更“丝滑” 多地提供“即买... 近日,商务部等6部门发布通知,进一步优化离境退税政策。文件出台后,一些城市增加了退税商店,提供更加便...
突发!王健林旗下大连万达集团所... 红星资本局3月23日消息,日前,王健林旗下大连万达集团股份有限公司(以下简称大连万达集团)又新增一条...
银行间主要利率债收益率升幅扩大 每经AI快讯,3月14日,银行间主要利率债收益率升幅扩大,10年期国开债“25国开05”收益率上行1...
国内期货夜盘开盘多数上涨 【国内期货夜盘开盘多数上涨】沪银涨近3%,铁矿石、沪镍、沪锡、焦炭等均涨超1%,沪金涨近1%;跌幅方...
6国心脏外科医生到北医三院,首... 近日 首期北京大学“一带一路” 微创冠脉搭桥国际高级学习班 在北医三院顺利举行 来自 葡萄牙、以色列...
去年净利预亏约10亿!“国产G... 摩尔线程(688795.SH)今日公告称,公司预计2025年年度实现营业收入14.5亿元到15.2亿...
华能旗下上市公司资产重组过审! 12月12日,内蒙古蒙电华能热电股份有限公司(以下简称“内蒙华电”)发布公告称,拟通过发行股份及支付...
金价,暴跌! 10月21日,黄金白银再次急跌。 截至16:43发稿时,伦敦现货黄金大跌近2%,交投于4270美元/...
8月1日起,现金买黄金超10万... 近日,中国人民银行发布“中国人民银行关于印发《贵金属和宝石从业机构反洗钱和反恐怖融资管理办法》的通知...
央行多措并举稳资金 六月流动性...   为保持银行体系流动性充裕,中国人民银行日前发布公告称,5月央行以固定数量、利率招标、多重价位中标...
恒生科技指数跌超1% 5月13日,恒生科技指数跌超1%。截至9时32分,该指数跌1.14%。蔚来、小鹏汽车、美团、网易、快...
2024年得分创新高!前海税收... 深圳商报·读创客户端记者 陈发清 4月29日,2024年度前海税收营商环境测评报告发布会在前海举办...
腾讯领投!智元机器人完成新一轮... 3月24日,上海证券报记者从业内独家获悉,智元机器人已于近日完成新一轮融资,该轮投资由腾讯领投,另有...
我国服务业对外资开放步伐加快 今年以来,我国服务业领域对外资开放力度加大,增值电信、医疗等多个领域积极推出试点,高水平对外开放扎实...
全球媒体聚焦 |“当美国威胁要... 澳大利亚“对话”网站近日刊发加拿大圣托马斯大学国际关系和政治学教授肖恩·纳里恩的文章指出,当美国威胁...