给定四个包含整数的数组列表 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 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 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
#include<iostream>
#include<vector>
#include<unordered_map>using namespace std;// 时间复杂度O(n^2)
// 空间复杂度O(n^2)
class Solution {
public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {unordered_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(0 - A[i] - B[j]) != record.end())res += record[0 - A[i] - B[j]];}}return res;}
};

leetcode454. 四数相加 II相关推荐

  1. leetcode454. 四数相加 II(思路+详解)

    一:题目 二:上码 class Solution {public:int fourSumCount(vector<int>& nums1, vector<int>&am ...

  2. Suzy找到实习了吗Day 7 | 哈希表结束啦 454. 四数相加 II,383. 赎金信,15. 三数之和,18. 四数之和

    454. 四数相加 II(dict hash) 题目 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...

  3. 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和

    代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...

  4. 代码随想录算法训练营第七天|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

    一.454.四数相加II 力扣 思路:第一眼还没反应过来,真是缺练.在四个数组中分别寻找,可以先把前两个数组的和先存入map中,再计算后两个数组元素的和,看一下相反数在map中出现没有,出现过就res ...

  5. (补)算法训练第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和

    代码随想录算法训练营第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 454.四数相加II 题目链接:四数相加II 参考:https://programmerc ...

  6. 代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和。

    代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和. 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 454.四数相加I ...

  7. 代码随想录算法训练营第⑦天 | 454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 9.30

    代码随想录算法训练营第⑦天 | 454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 9.30 454.四数相加II 可以先用2次for循环遍历前两个数组a,b 并存储到map ...

  8. 代码随想录算法训练营day07| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

    Leetcode 454.四数相加II 题目链接 思路:求四数相加之和,将四数两两相加,判断两两相加的数是否和为0 定义一个map,key放两数之和,value放两数之和出现的次数 两层for循环将前 ...

  9. 代码随想录算法训练营day7| 454.四数相加II,383. 赎金信 ,15. 三数之和,18. 四数之和

    454.四数相加II 454. 四数相加 II 四个数在不同的数组里,不用考虑重复的问题 先计算2个数的和,并且统计和出现的次数,在用目标值减去后面两个数的和,用find查找是否存在减去后的数字. c ...

  10. 代码随想录算法训练营第七天| 454.四数相加II 、383. 赎金信 、15. 三数之和 、18. 四数之和 。

    454.四数相加II 题目链接 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i ...

最新文章

  1. QT调用C#写的Dll
  2. golang net/http 超时机制完全手册
  3. android 获取当前画布,Android硬件位图填坑之获取硬件画布
  4. TensorFlow.js快速入门
  5. 20171018 在小程序页面去获取用户的OpenID
  6. scanner python_Python之Scanner编写
  7. 用vscode做markdown编辑器(借助Markdown All in One)
  8. 内存溢出错误:java堆空间
  9. oneno浏览器插件_Send to OneNote 1.2.13
  10. 天勤2022数据结构(四)数组、矩阵与广义表
  11. 那些你不愿说给领导的话
  12. android前置摄像头预览,android - 当选择了前置摄像头CameraX预览没有显示任何东西 - 堆栈内存溢出...
  13. java吉他游戏_[Java]吉他谱浏览器 0.1
  14. 安装postman工具 出现请设置注册表项HKLM\Software\Microsoft\.NETFramework\InstallRoot,指向.NET Fra
  15. tensorflow输出的人脸图片经过OpenCV write的图片是蓝色的问题的解决方案
  16. Android开发技巧——Camera拍照功能
  17. 深蓝卡通风人教版小学五年级英语课件PPT模板
  18. ps制作浮雕和投影效果
  19. js 将阿拉伯数字翻译成中文的大写数字
  20. anaconda一次性更新所有安装库

热门文章

  1. tw8836flash制作
  2. 上古卷轴ol服务器正在维护,上古卷轴ol服务器在哪 | 手游网游页游攻略大全
  3. 纯代码方式实现cesium倾斜摄影单体化和楼栋分层
  4. T100——错误信息提示传入参数显示
  5. 将照片转换为网站的Flash
  6. 【GIF图片】用PS生成背景透明的GIF图片出现帧叠加的现象
  7. Spring入门学习
  8. 电压模块THM30-2421WI
  9. el-descriptions的入门学习
  10. 三个基本的布尔逻辑算符是_常用布尔逻辑运算符有哪些