题目地址

https://leetcode-cn.com/problems/4sum-ii/

思路

本题使用哈希表映射的方法

那么为什么0015.三数之和不适用哈希表映射的方法呢,感觉上 这道题目都是四个数之和都可以用哈希,三数之和怎么就用不了哈希呢

因为题目0015.三数之和,使用哈希的方法在不超时的情况下做到对结果去重很困难

而这道题目 相当于说 不用考虑重复元素,是四个独立的数组,所以相对于题目0015.三数之和,还是简单了不少

C++代码

class Solution {
public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {unordered_map<int, int> umap;for (int x : A) {for (int y : B) {if (umap.find(x + y) != umap.end()) {umap[x + y]++;} else {umap[x + y] = 1;}}}int count = 0;for (int x : C) {for (int y : D) {if (umap.find(0 - (x + y)) != umap.end()) {count += umap[0 - (x + y)]; // 注意这里是加上umap[0 - (x + y)]的值}}}return count;}
};

更多精彩文章持续更新,可以微信搜索「 代码随想录」第一时间阅读,关注后有大量的学习资料和简历模板可以免费领取,本文 GitHub:https://github.com/youngyangyang04/leetcode-master 已经收录,欢迎star,fork,共同学习,一起进步。

原创 leetcode[454]四数相加II /4Sum II 哈希策略相关推荐

  1. 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结

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

  2. LeetCode 454. 四数相加 II【哈希表】

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

  3. LeetCode 454. 四数相加 II 思考分析

    题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所有 ...

  4. leetcode 454. 四数相加 II c语言

    如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0.为了使问题简单化,所有 ...

  5. leetcode 454. 四数相加 II(哈希表)

    给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所有的 A ...

  6. 给定4个数字组合的C语言算法,leetcode 454. 四数相加 II c语言

    如题: 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所 ...

  7. LeetCode 454. 四数相加 II(哈希)

    1. 题目 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化 ...

  8. leetcode 454 四数相加

    采用一个哈希表存储两个数的和,再遍历另外两个数组的和,time O(n2) space O(n2) class Solution { public:int fourSumCount(vector< ...

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

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

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

    一.Leetcode 454. 四数相加 II 相当于两数相加.但是呢很巧妙的是,卡哥在遍历CD数组时把查哈希表的方法融入了进去.学习一下. 二.Leetcode 383. 赎金信 更简单了,主要是审 ...

最新文章

  1. HTTPS网络加密双向验证-使用AFNetworking封装
  2. 华中科技大学计算机通信与网络实验,华中科技大学计算机通信与网络实验报告Socket编程实验.docx...
  3. springboot整合mybatis和mybatis-plus
  4. 通过事件同步两个窗体之间的数据
  5. 如何让带有批注等修改痕迹的word文档编程“正规”文档?
  6. 20135203齐岳 信息安全系统设计基础第十三周学习总结
  7. ajax项目设置,jQuery_ajax预处理_和后置处理;项目中ajax自动设置_token_请求头,_接口响应code的统一处理...
  8. gwt 同步和异步_GWT Spring和Hibernate进入数据网格世界
  9. LeetCode 406 根据身高重建队列
  10. 模仿mongodb采用xml+json实现小型数据库
  11. UML---(1)一张图看懂UML 类图
  12. 51nod 1838
  13. 大数据服务器环境准备(三台服务)
  14. win7如何修改html图标,Win7如何修改桌面图标
  15. formality 命令/变量的使用及各种设置
  16. linux-文件系统管理10-关于存储介质的那些事儿
  17. 算法分析——Hanoi塔问题
  18. 理解paxos算法--事前咨询,事中决定,事后提交
  19. DB2处理数据由原来六小时优化到二十分钟(一)
  20. 怎么区分三种基本放大电路?

热门文章

  1. Linux Shell编程参考大全
  2. Mysql表编码查看修改
  3. Could not find artifact com.sun:tools:jar:1.5.0 问题解决
  4. ASP.NET 事件日历(some resource about Event Calendar)
  5. [集成IronPython] 使用Module扩展IronPython
  6. Concept Drift(概念漂移)
  7. ORB_SLAM2+ZED 2
  8. MAVEN(一)中的Scope
  9. Tomcat - SSL操作大全
  10. 02 - 体系结构概述