My Sixteenth Page - 四数相加 - By Nicolas
这篇page是针对leetcode上的454.四数相加Ⅱ所写的,小尼先简单的给大家说明一下这个题目,给出四个整数组,并且每个数组的长度都是n,从每个数组中取出一个元素都相加,如果满足结果为0则记录下来。第一种思想呢就是暴力的解法,就是写四层for循环对这四个数组进行遍历,然后然后再将从每个数组中取出的数相加最后判断是否满足结果,但是这个方法的时间复杂度过高。
第二种思想其实也是遍历,但是这个遍历就可以极大的降低我们的时间复杂度,我们分两次遍历,然后我们运用Hashmap的键值对存储我们的数据,小尼拉一下代码:
Map<Integer,Integer> map = new HashMap<Integer,Integer>();for(int i : nums1){for(int j : nums2){map.put(i + j , map.getOrDefault(i + j , 0) + 1);} } int num = 0;for(int a :nums3){for(int b : nums4){if(map.containsKey(-a -b)){num += map.get(-a -b);}} }return num;
小尼简单说明一下这个代码,首先我们运用map结构可以用来记录键值对,我们先遍历第一个数组和第二个数组,然后再key位置加入我们的i+j的值,再用getOrDefault的方法记录我们的key值出现的次数,然后我们再遍历第三个第四个数组,这里很细节的地方就是我们containskey()方法中比较的是-a-b,原因是我么需要满足的是四个数组中取出的四个数的和要求满足时0,那么我们只要比较是否存在相反数就可以了,并且找出来之后,我们返会的时之前记录的key值的个数
My Sixteenth Page - 四数相加 - By Nicolas相关推荐
- leetcode 454. 4Sum II | 454. 四数相加 II(Java)
题目 https://leetcode.com/problems/4sum-ii/ 题解 四数相加问题. 对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应 ...
- 454. 四数相加 ||
454. 四数相加 || class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nu ...
- Suzy找到实习了吗Day 7 | 哈希表结束啦 454. 四数相加 II,383. 赎金信,15. 三数之和,18. 四数之和
454. 四数相加 II(dict hash) 题目 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和
代码随想录算法训练营第七天| 哈希表理论基础 ,454.四数相加II, 383. 赎金信, 15. 三数之和, 18. 四数之和 454.四数相加II 建议:本题是 使用map 巧妙解决的问题,好好体 ...
- 代码随想录算法训练营第07天 | LeetCode 454.四数相加2,383. 赎金信,15. 三数之和,18. 四数之和,总结
LeetCode [454. 四数相加 II] 题目:给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足 ...
- 代码随想录算法训练营第七天|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和
一.454.四数相加II 力扣 思路:第一眼还没反应过来,真是缺练.在四个数组中分别寻找,可以先把前两个数组的和先存入map中,再计算后两个数组元素的和,看一下相反数在map中出现没有,出现过就res ...
- 算法刷题-哈希表-四数相加
需要哈希的地方都能找到map的身影 第454题.四数相加II 力扣题目链接 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + ...
- (补)算法训练第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和
代码随想录算法训练营第七天|力扣454.四数相加II ,383. 赎金信,15. 三数之和,18. 四数之和 454.四数相加II 题目链接:四数相加II 参考:https://programmerc ...
- 代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和。
代码随想录算法训练营第六天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和. 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和 454.四数相加I ...
- 代码随想录算法训练营第七天|454、四数相加Ⅱ 383、赎金信15、三数之和18、四数之和
454.四数相加Ⅱ.383.赎金信.15.三数之和四数之和 四数相加 对于四数相加,我们可以定义一个map用来记录nums1与nums2的和对应次数,再遍历nums3与nums4,如果存在c与d使得a ...
最新文章
- 第十周项目5:贪心的富翁
- 活久见!如何看待北京理工大学某硕士生被指几乎一字不差地抄袭论文?
- [转载]TFS测试管理
- Linux之grep命令
- xe7 Unresolved external CSPIN.OBJ
- Python_函数做字典的值
- Android Studio解决未识别Java文件(出现红J)问题
- 英语中十二个月份的由来
- 前端学习(2825):vs开发小程序的插件
- android 动态换肤框架,GitHub - ss520k/Android-Skin-Loader: 一个通过动态加载本地皮肤包进行换肤的皮肤框架...
- 枚举类型用法_Mybatis-plus常见用法总结三
- java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理
- 技术架构演进|0到千万DAU,微淘如何走过?
- 图像语义分割 -- FCN
- bzoj2186 莎拉公主的困惑 积性函数
- python临床数据_关于体温、性别、心率的临床数据简单分析
- Git 学习笔记--git 查看某个文件的修改历史
- 在部署服务器端的时候postgresql调试和远程连接操作需要考虑好远程连接问题。
- 进入AI领域做产品 —— 我的自学之路
- understand 代码解析工具的使用