[Leetcode] 454. 4Sum II

GitHub漏洞挖掘与CVE提交实战指南:从发现到编号的完整链路 GitHub开源项目是现代软件供应链的核心节点,其安全漏洞直接影响全球数百万系统的机密性、完整性与可用性。理解漏洞本质需回归CIA三元组原理,而真实可利用性依赖对协议解析层、配置加载区和依赖传递链等高危模块的精准识别。技术价值在于将模糊的‘可疑逻辑’转化为符合MITRE CVE标准的可验证事件,支撑SDL流程、威胁情报建设与供应链风险管理。典型应用场景包括甲方安全工程师推动供应商修复、独立研究者参与负责任披露,以及DevSecOps团队构建自动化风险坐标系。本文基于27次CVE提交经验,聚焦GitHub代码 阅读详情

Description:
Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.

To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of -228 to 228 - 1 and the result is guaranteed to be at most 231 - 1.

Example:

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

Output:
2

Explanation:
The two tuples are:
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

Language: C++

解法一:
题目中一个很重要的信息是数字的range,也就是A, B, C, D的长度分别的在500以内。这个要求我们考虑到算法复杂度。最直接的算法是暴力解法,但是它达到了O(n4)O(n4)的复杂度,这是计算机承受不了的。即使将一个数组存入map,然后去找,也是O(n3)O(n3)的复杂度,对于500的大小还是有点承受不了。那么就应该想办法降到O(n2)O(n2)的复杂度,这个是可以承受的。

思路就是把C和D的组合存入map,并对应的value是频数,代表有多少种同一个key的组合。

Time: O(n2)O(n2)
Space: O(n2)O(n2) 由于map存放的是C+D的组合,而他们分别是nn个元素,组合个数为n2

class Solution {
public:
    int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {

        map<int,int> record;
        for(int i = 0; i < C.size(); i++)
            for(int j = 0; j < D.size(); j++){
                record[C[i]+D[j]]++;
            }

        int res = 0;
        for(int i = 0; i < A.size(); i++)
            for(int j = 0; j < B.size(); j++){
                if(record.find(-A[i]-B[j])!=record.end())
                    res+=record[-A[i]-B[j]];//不是res++!应该是当前值所有C+D组合的个数
            }
        return res;
    }
};

算法细节:
特别需要注意的是在A, B找target = 0 - (c+d)的时候,res要加上的是map中当前target的value值,也就是它的频数,而不是仅仅加1,这是因为这说明同一个target的c+d组合有这么多。

计算机网络自顶向下(第八版)第一章课后习题 电路交换网络具有以下优点:资源独占性,在建立连接时,电路交换网络为通信双方独占一条物理路径,不会受到其他用户的影响。低时延,由于建立了专用路径,数据传输时延较小,适合对时延敏感的应用,如实时语音和视频通信。数据链路层:提供节点之间可靠的数据传输,主要任务是错误检测和纠正,以及数据帧的传输和访问控制。移动蜂窝网络:如4G LTE和5G,通过移动基站提供的无线信号实现移动设备的互联网接入。网络层:负责数据包的路由和转发,主要任务是通过网络选择最佳路径,进行流量控制和拥塞控制。手机,服务器,路由器,电脑; 阅读详情

相关推荐

网络流量监测技术

NetFlow是Cisco公司提出的网络数据包交换技术,该技术首先被用于网络设备对数据交换进行加速,并可同步实现对高速转发的IP数据流(Flow)进行测量和统计。  随着宽带互联网在中国 的迅速发展,全国各大电信运营商的网络规模都在不断扩张,网络结构日渐复杂,网络业务日趋丰富,网络流量高速增长。电信运营商需要通过可靠、有效的网络业 务流量监测系统对其网络以及网络所承载的各类业务进行及时、准

红杉树(ecitnet)的博客 5538

【Leetcode】454. 4Sum II(算法时间复杂度)

Given four lists A, B, C, D of integer values, compute how many tuples(i, j, k, l)there are such thatA[i] + B[j] + C[k] + D[l]is zero. To make problem a bit easier, all A, B, C, D have same lengt...

小I的博客 301

给大一新生的蓝桥杯EDA备赛规划:从电路分析到立创EDA,如何用一年时间高效备赛?

本文为大一新生提供了一份系统的蓝桥杯EDA备赛规划,从电路分析基础到立创EDA实战操作,分阶段指导如何高效备赛。内容涵盖理论学习、软件操作、PCB设计专项提升及冲刺优化策略,帮助学生在一年内全面提升电子设计能力,为竞赛做好充分准备。

weixin_31476015的博客 287

Leetcode:454. 4Sum II (解决时间和空间复杂度是关键)

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.To make problem a bit easier, all A, B, C, D have same length o

Genius 711

INMP441麦克风与ESP32的I2S音频采集实战指南

本文提供了INMP441数字麦克风与ESP32开发板通过I2S接口进行高质量音频采集的完整实战指南。详细讲解了硬件连接、软件配置、数据读取及基础处理,并分享了常见的避坑技巧与性能优化建议,帮助开发者快速构建物联网音频应用。

weixin_28396629的博客 598

《从理念到落地:Claude Code 在真实项目中的深度实践指南》基于 Anthropic 团队内部使用经验的扩展与深度解读,一篇面向工程团队的全面实践手册

Claude Code 支持通过# 创建新的 API 端点根据以下输入创建完整的 API 端点:资源名称:$ARGUMENTS请创建以下文件:1. `src/routes/{resource}.routes.ts` - 路由定义2. `src/controllers/{resource}.controller.ts` - 控制器3. `src/services/{resource}.service.ts` - 服务层。

AI天才研究院 482

【LeetCode】454. 4Sum II 解题报告(Python & C++)

【LeetCode】454. 4Sum II 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/4sum-ii/description/ 题目描述: Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l)...

负雪明烛 2024

PCIe-Orders set Blocks之symbol对齐

有序集的使用场合很多,如在链路link阶段,进入polling后,便开始有序集的发送。一个 Ordered Set Block 包含一个同步头,后跟一个有序集。多通道链路的所有 Lane 必须同时传输相同的有序集,而且有序集的第一个符号定义了有序集的类型。但在PCIE中,8GT/s及以上的速率,采用的是128b/130b编码。128-bit是想要传输的payload,实际会传输130-bit,多出来的2-bit就是sync header。Block有两种,通过Sync header区分:10b:表示data

weixin_44700185的博客 813

poj 2785 二分问题 4 Values whose Sum is 0

http://poj.org/problem?id=278 Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D a

ACM,再见! 3236

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外网(比如我的笔记本就可以:使用网线连接笔记本网口与内网通讯,使用WIFI连接手机热点访问外部网络); 注意:如果只有一个网口,可以另外购买USB的无线网卡来实现上网卡。 三、实现电脑同时上内网和外网的操作步骤 3.1、网络拓扑图 ..

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

454. 4Sum II

Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l]is zero. To make problem a bit easier, all A, B, C, D have same le

zshouyi的博客 348

快速卷积结构FIR数字滤波器的设计与ARM平台实现

本文提出了一种基于快速卷积结构的FIR数字滤波器设计与实现方案。通过Matlab设计了满足特定指标的低通FIR滤波器,采用重叠-保存法和重叠-相加法两种快速卷积算法,将计算复杂度从O(N·M)降低到O(NlogN)。详细介绍了滤波器系数生成、性能验证流程,并提供了ARM平台C语言实现的关键技术,包括定点量化处理。实验结果表明,该方法能有效滤除混合信号中的高频干扰,保留目标1kHz正弦信号,验证了设计方案的有效性。

huanghm88的专栏 123

LeetCode //C - 454. 4Sum II

【代码】LeetCode //C - 454. 4Sum II。

Made in Code 1418

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

leetcode 454. 4Sum II

【代码】leetcode 454. 4Sum II。

weixin_41554427的博客 378

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode 454 4Sum II

4Sum II - LeetCode Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make problem a bit easier, all A, B, C,...

zhaohaibo的博客 488

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[leetcode] 454. 4Sum II @ python

原题 https://leetcode.com/problems/4sum-ii/ Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make problem a b...

闲庭信步 425

[leetcode]454. 4Sum II

[leetcode]454. 4Sum II Analysis 等国庆!!!!!—— [嘻嘻~] Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make ...

weixin_32135877的博客 154

[LeetCode] 454. 4Sum II

原题链接: https://leetcode.com/problems/4sum-ii/ 1. 题目介绍 Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make ...

Ber03的博客 223

leetcode 454 - 4Sum II

紧跟着leetcode 18题目刷454题,题目类似。 此题简单的是不用输出具体结果,只用将所有结果的数量给出来即可。下面给出了两个代码,第二个代码实在第一个代码的基础上改进的,从思路上来讲第一个更好理解一点。 package no451_500; import java.util.HashMap; import java.util.Map; public class subject454 ...

智者之家 437

leetcode: 454. 4Sum II

leetcode: 454. 4Sum II 原题链接 这道题目很自然的一个思路就是运用4重for循环,暴力判断,结果超时。 思考改进,想到用哈希表可以把最后一次for循环省掉,优化到3重for循环,还是超时。最后优化到O(n^2) class Solution { public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vec

LSK的博客 407

[leetcode] 454. 4Sum II 解题报告

题目链接:https://leetcode.com/problems/4sum-ii/ Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make

小榕流光的专栏 2143

【leetcode】【medium】454. 4Sum II

454.4Sum II Given four lists A, B, C, D of integer values, compute how many tuples(i, j, k, l)there are such thatA[i] + B[j] + C[k] + D[l]is zero. To make problem a bit easier, all A, B, C, D h...

lemonade13的博客 148

【Leetcode】454. 4Sum II

问题: 454. 4Sum II Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make problem a bit easier, a

zhizhi_zhizhi_zhizhi的博客 269

leetcode454. 4Sum II(四数相加 II )/哈希

文章目录题目:454. 4Sum II(四数相加 II)基本思想:分组+哈希 题目:454. 4Sum II(四数相加 II) Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero. To make problem a bit easier, all A, B, C, D have sam

yyf_blog 504

leetcode 454. 4Sum II 四数相加 II

摘要: 该问题要求统计四个数组中元素和为0的元组数量。通过将四个数组分成两组,先计算前两组的和并存入哈希表,再在后两组中查找匹配的负值,避免了四重循环的高时间复杂度。优化后的时间复杂度为O(n²),空间复杂度为O(n²)。代码使用哈希表存储前两组的和,再遍历后两组进行匹配计数。

邹九的个人博客 407
上一篇: [Leetcode] 350. Intersection of Two Arrays II
下一篇: 拿到了摩根斯坦利IT部门offer(2018 Morgan Stanley Technology Summer Analyst)
Peggy_Chang
博客等级 码龄11年 21粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值