题目

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

题解

四数相加问题。

对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应的 count。

对于右边两个数两两组合,需要查 map 中是否有可以与之匹配的元素。如果有,将个数累加到 count 中。

class Solution {public int fourSumCount(int[] n1, int[] n2, int[] n3, int[] n4) {HashMap<Integer, Integer> map = new HashMap<>(); //(sum,count)int n = n1.length;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {int sum = n1[i] + n2[j];if (!map.containsKey(sum)) map.put(sum, 0);map.put(sum, map.get(sum) + 1);}}int count = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {int sum = -n3[i] - n4[j];if (map.containsKey(sum)) count += map.get(sum);}}return count;}
}

leetcode 454. 4Sum II | 454. 四数相加 II(Java)相关推荐

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

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

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

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

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

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

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

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

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

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

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

    Leetcode 454.四数相加II 思路分析: 本题直观的想法是采取暴力法,四数相加就用四层for循环.虽然能得到结果,但时间复杂度为o(n4),当数组长度较大时,Leetcode便提示超时.该方 ...

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

    代码随想录算法训练营day6| 454.四数相加II 383.赎金信 15.三数之和 18.四数之和 LeetCode 454 四数相加II 题目链接: 454.四数相加II class Soluti ...

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

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

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

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

最新文章

  1. 三十八、网络通信Socket模块实现文件传输
  2. java的4种代码块
  3. ant如何形成时间轴和图库_如何让景观设计更具有逻辑性?
  4. shell中的文本处理(grep、sed、awk命令)
  5. 基于matlab的2ask频带传输系统仿真与性能分析,基于MATLAB的2ASK频带传输系统仿真与性能分析汇总...
  6. Java中解决(extjs或jquery)session过期退出登录问题
  7. 烂泥:CentOS6.5光盘以及ISO镜像文件的使用
  8. 边缘计算的前景和挑战
  9. authware链接html文件,authorware是什么软件?
  10. 漏洞复现-——通达OA任意用户登陆漏洞
  11. arcgis怎么做poi_基于POI数据与ArcGIS空间分析技术的城市公交站点现状容量评价方法...
  12. html5中ul什么意思,css代码中的ul和li是什么意思
  13. 射频信号发生器的应用选择
  14. leetcode 347
  15. XP系统启动时滚动条总是时间很长
  16. Firefox支持Websocket
  17. 生命周期模型_建立从思想到价值的生命周期模型
  18. Kaggle提示:TTA(测试时间增加),小,技巧,TTAtesttimeaugmentation,增强
  19. C++ 机房预约系统
  20. C语言 循环打印星星

热门文章

  1. POJ - 1011 Sticks(dfs+剪枝)(好题!!)
  2. 中石油训练赛 - Isomorphic Inversion(哈希+贪心)
  3. angularjs全栈开发知乎_1-4【微信小程序全栈开发课程】原生小程序框架介绍
  4. mysql 预留一个自定义字段_mysql-预留字段
  5. 深度学习项目-人脸表情识别
  6. linux wine运行效率,Wine 3.0让Windows应用在Linux上流畅运行!
  7. 特殊方法求1~n的和
  8. 【网络编程】之十一、重叠IO Overlapped IO 完成例程
  9. cocos2d-x游戏实例(27)-简易动作游戏(5)
  10. cocos2d-x游戏实例(18)-纵版射击游戏(5)