day6-四数相加II

news/2024/12/29 12:21:56/

四数相加II

力扣题目链接(opens new window)

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1 。

例如:

输入:

  • A = [ 1, 2]
  • B = [-2,-1]
  • C = [-1, 2]
  • D = [ 0, 2]

输出:

2

解释:

两个元组如下:

  1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
  2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0

思路

最明显的一种思路当然是暴力遍历所有数组元素,然后统计符合条件的和,最后返回结果。但是复杂度过高。

另一种是哈希表法。

哈希表法

我们可以把四个数组分为两组,前两组先统计其和出现的次数。

由于加起来=0的缘故,前两组的和与后两组的和互为相反数,因此在后两组遍历时只需要判断当前组的和的相反数是否存在于哈希表中,若有则取其次数相加。

哈希用在:判断一个元素是否在某个集合里面时最好用。

代码如下:

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map<int,int>res;for (int n1:nums1) {for (int n2:nums2) {res[n1+n2]++;}}int count=0;for(int n3:nums3){for (int n4:nums4) {if (res.find(0 - (n3+n4))!=res.end()){count+=res[0 - (n3+n4)];}}}return count;}
};

http://www.ppmy.cn/news/921550.html

相关文章

【Spring】Spring更简单的读取和存储对象---使用注解

目录 1.Spring的存储对象------存储Bean对象 1.前置工作&#xff0c;配置扫描路径 2.添加注解存储Bean对象 1.Controller&#xff08;控制器存储&#xff09; 2.service&#xff08;服务存储&#xff09; 3.Repository&#xff08;仓库存储&#xff09; 4.Component&…

关于HDMI2.1的一些常见问题答疑

HDMI2.1新规范已经发布,它能够处理更高的刷新率和分辨率,如8K @ 60Hz和4K @ 120Hz,但这只是冰山一角。 动态HDR将确保客户不必自己调整每个游戏或电影。 HDMI 2.1还在电视中引入了可变刷新率,称为“游戏模式VRR”;例如,如果微软的Scorpio硬件支持HDMI 2.1,这可能会在控制…

让Mplayer或SMplayer成为网络电视客户端(安装Mplayer以Fedora为例)

PPLive、PPS、UUSee等网络电视已经成为了Windows操作系统必备的家居旅游&#xff0c;网上娱乐的必备工具。在Windows上我们能看许许多多的节目。但是&#xff0c;我们现在说的不是Windows上的这些常用的&#xff0c;而是多平台的&#xff0c;比如Linux等等。让这些平台同时能播…

你即将拥有HDMI2.1,纯光纤HDMI最高支持72Gbps试用体验

目前市场中各类4K HDR设备可谓百花齐放,而且4K UHD蓝光片源也高达数百部之多,众多影音发烧友都选择符合HDMI 2.0标准规格的碟机和投影机,但是很多人在升级投影机的时候发现原有的HDMI 1.4线不能点亮新购入的4K投影机了,选择一条品质有保障信号可以稳定传输HDMI 2.0的HDMI线…

[个人笔记] 交换机日常巡检笔记

数据通信 - 运维篇 第二章 交换机日常巡检笔记 数据通信 - 运维篇系列文章回顾交换机日常巡检笔记参考链接 系列文章回顾 第一章 交换机性能参数计算公式 交换机日常巡检笔记 display interface相关 ### Huawei S系列交换机 ### H3C S系列交换机 display interface # 查看…

【电子学会】2023年05月图形化三级 -- 绘制多彩五角星

绘制多彩五角星 1. 准备工作 &#xff08;1&#xff09;选择背景stars、角色Pencil&#xff1b; &#xff08;2&#xff09;将角色Penci的中心点设为笔尖。 2. 功能实现 &#xff08;1&#xff09;将画笔粗细设为3&#xff0c;画笔的颜色和初始位置自定义&#xff0c;绘制边…

戏说BIOS之Beep

戏说BIOS之Beep 1. Introduction 大凡用过电脑的朋友都应该听到过BIOS的报警声&#xff0c;有时 PC开机的时候就会听到嘀的一声&#xff0c;有过修理PC经验的话就更清楚了“一短内存刷新失败&#xff0c;二短内存校验错误&#xff0c;一长三短内存错误&#xff0c;一长八短显示…

关于SYS/BIOS

1.什么是SYS/BIOS SYS/BIOS是一个可拓展的实时内核。用于实时调度和同步的应用程序或实时的设备。SYS/BIOS提供了抢占式多线程&#xff0c;硬件抽象&#xff0c;实时分析和配置工具。SYS/BIOS的设计是为了最大限度地减少对内存和CPU的要求。 SYS/BIOS的优点&#xff1a; &am…