算法:四数相加||

题目(四数相加 II)

本质是:给你 4 个数组 A、B、C、D统计有多少个四元组(i, j, k, l)满足A[i] + B[j] + C[k] + D[l] == 0

关键点

数组长度一般 ≤ 200

暴力 4 重循环是O(n^4)必超时

核心思想:把「四数相加」拆成「两数相加 + 两数相加」

这是这道题的灵魂。

数学变形

A[i] + B[j] + C[k] + D[l] = 0 ↓ (A[i] + B[j]) = -(C[k] + D[l])

也就是说:

只要某个 (a + b)等于某个 -(c + d)那么它们就能凑成 0

为什么用 unordered_map?

因为你需要做两件事:

  1. 统计 A + B 的所有可能结果

  2. 快速查找 -(C + D) 是否存在

哈希表刚好满足:

插入:O(1)

查找:O(1)

代码:

int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) { unordered_map<int, int> umap; //key:a+b的数值,value:a+b数值出现的次数 // 遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中 for (int a : A) { for (int b : B) { umap[a + b]++; } } int count = 0; // 统计a+b+c+d = 0 出现的次数 // 再遍历大C和大D数组,找到如果 0-(c+d) 在map中出现过的话,就把map中key对应的value也就是出现次数统计出来。 for (int c : C) { for (int d : D) { if (umap.find(0 - (c + d)) != umap.end()) { count += umap[0 - (c + d)]; } } } return count; }

时间复杂度分析

部分复杂度
构建 A+BO(n²)
遍历 C+DO(n²)
哈希查找O(1)

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

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

相关文章

如何悄悄检测单向好友?WechatRealFriends零打扰解决方案

如何悄悄检测单向好友&#xff1f;WechatRealFriends零打扰解决方案 【免费下载链接】WechatRealFriends 微信好友关系一键检测&#xff0c;基于微信ipad协议&#xff0c;看看有没有朋友偷偷删掉或者拉黑你 项目地址: https://gitcode.com/gh_mirrors/we/WechatRealFriends …

BetterNCM Installer:革新网易云音乐插件管理体验的免费工具

BetterNCM Installer&#xff1a;革新网易云音乐插件管理体验的免费工具 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件安装繁琐而头疼吗&#xff1f;BetterNCM …

CardEditor深度测评:从原理到实践的全链路解析

CardEditor深度测评&#xff1a;从原理到实践的全链路解析 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/CardEditor …

Z-Image-Turbo推理延迟高吗?端到端测试告诉你

Z-Image-Turbo推理延迟高吗&#xff1f;端到端测试告诉你 在文生图模型落地实践中&#xff0c;开发者最常被问到的问题不是“画得像不像”&#xff0c;而是“出图快不快”。尤其当业务场景涉及实时交互——比如电商商品图秒级生成、AI设计助手即时反馈、直播背景动态切换时&am…

DLSS Swapper智能管理工具:全方位革新游戏超采样体验

DLSS Swapper智能管理工具&#xff1a;全方位革新游戏超采样体验 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper作为一款革新性的超采样技术管理工具&#xff0c;通过智能DLL文件替换机制&#xff0c;为P…

5分钟解决热键冲突:Hotkey Detective高效排查指南

5分钟解决热键冲突&#xff1a;Hotkey Detective高效排查指南 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 在Windows系统使用过程中&#xff…

视频保存解决方案:N_m3u8DL-RE无会员下载与直播录制技巧全指南

视频保存解决方案&#xff1a;N_m3u8DL-RE无会员下载与直播录制技巧全指南 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器&#xff0c;支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u…

游戏自动化工具:云顶之弈智能挂机系统的高效实现方案

游戏自动化工具&#xff1a;云顶之弈智能挂机系统的高效实现方案 【免费下载链接】LOL-Yun-Ding-Zhi-Yi 英雄联盟 云顶之弈 全自动挂机刷经验程序 外挂 脚本 ,下载慢可以到https://gitee.com/stringify/LOL-Yun-Ding-Zhi-Yi 项目地址: https://gitcode.com/gh_mirrors/lo/LOL…

图像修复自动化方案:fft npainting lama批量处理实战教程

图像修复自动化方案&#xff1a;FFT NPainting LaMa批量处理实战教程 1. 为什么需要图像修复自动化&#xff1f; 你有没有遇到过这些情况&#xff1a;一张精心拍摄的产品图上突然出现反光杂物&#xff0c;一张老照片里有划痕和污渍&#xff0c;或者电商主图上需要快速去掉水印…

如何让旧Mac重获新生:非官方升级方案全解析

如何让旧Mac重获新生&#xff1a;非官方升级方案全解析 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 旧Mac升级新系统不仅是对硬件潜力的深度挖掘&#xff0c;更是对系统…

微博图片批量下载工具完全指南

微博图片批量下载工具完全指南 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 你是否曾为保存喜欢博主的所有图片而重复点击"保存图片"&#xff1f;面对成百…

日志分析效率提升300%?这款工具让故障排查不再头痛

日志分析效率提升300%&#xff1f;这款工具让故障排查不再头痛 【免费下载链接】LogViewer 项目地址: https://gitcode.com/gh_mirrors/logvie/LogViewer 你是否也曾面对GB级日志文件加载卡顿半小时&#xff1f;是否在数千行日志中反复滚动寻找关键错误&#xff1f;Log…

5大革新性功能重构Windows热键管理:全场景全局快捷键占用分析解决方案

5大革新性功能重构Windows热键管理&#xff1a;全场景全局快捷键占用分析解决方案 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 在Windows系统…

热键冲突效率神器:3分钟定位Windows快捷键占用问题完全指南

热键冲突效率神器&#xff1a;3分钟定位Windows快捷键占用问题完全指南 【免费下载链接】hotkey-detective A small program for investigating stolen hotkeys under Windows 8 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 【问题发现&#xff1a;那…

窗口管理革新:FancyZones带来的多显示器效率革命

窗口管理革新&#xff1a;FancyZones带来的多显示器效率革命 【免费下载链接】PowerToys Windows 系统实用工具&#xff0c;用于最大化生产力。 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys 你是否也曾在多显示器工作时&#xff0c;为窗口的杂乱排列而…

GPT-OSS-20B实时字幕生成:流式输出部署教程

GPT-OSS-20B实时字幕生成&#xff1a;流式输出部署教程 你是否试过一边看会议直播&#xff0c;一边手忙脚乱地记要点&#xff1f;或者在听外语访谈时&#xff0c;反复暂停、回放、查词&#xff1f;如果有一套系统&#xff0c;能像专业同传一样&#xff0c;把说话内容逐句、低延…

5分钟部署GPT-OSS 20B,gpt-oss-20b-WEBUI镜像让本地大模型一键启动

5分钟部署GPT-OSS 20B&#xff0c;gpt-oss-20b-WEBUI镜像让本地大模型一键启动 1. 为什么你需要这个镜像&#xff1a;告别编译、跳过配置、直奔推理 你是不是也经历过这些时刻&#xff1a; 看到一篇“本地运行GPT-OSS 20B”的教程&#xff0c;点开后第一行就是“请先安装CUD…

3步解锁专业级数据分析:跨平台抽卡记录工具全解析

3步解锁专业级数据分析&#xff1a;跨平台抽卡记录工具全解析 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具&#xff0c;它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。 项目地址…

旧Mac升级完全指南:突破硬件限制的系统破解与优化教程

旧Mac升级完全指南&#xff1a;突破硬件限制的系统破解与优化教程 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 旧Mac设备因硬件限制无法升级最新系统&#xff1f;通过O…

唤醒沉睡性能:老旧Windows电脑升级技术指南

唤醒沉睡性能&#xff1a;老旧Windows电脑升级技术指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 问题诊断指南&#xff1a;识别你的电脑瓶颈 当你的Windows电脑出现…