这篇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相关推荐

  1. leetcode 454. 4Sum II | 454. 四数相加 II(Java)

    题目 https://leetcode.com/problems/4sum-ii/ 题解 四数相加问题. 对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应 ...

  2. 454. 四数相加 ||

    454. 四数相加 || class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nu ...

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

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

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

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

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

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

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

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

  7. 算法刷题-哈希表-四数相加

    需要哈希的地方都能找到map的身影 第454题.四数相加II 力扣题目链接 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + ...

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

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

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

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

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

    454.四数相加Ⅱ.383.赎金信.15.三数之和四数之和 四数相加 对于四数相加,我们可以定义一个map用来记录nums1与nums2的和对应次数,再遍历nums3与nums4,如果存在c与d使得a ...

最新文章

  1. 第十周项目5:贪心的富翁
  2. 活久见!如何看待北京理工大学某硕士生被指几乎一字不差地抄袭论文?
  3. [转载]TFS测试管理
  4. Linux之grep命令
  5. xe7 Unresolved external CSPIN.OBJ
  6. Python_函数做字典的值
  7. Android Studio解决未识别Java文件(出现红J)问题
  8. 英语中十二个月份的由来
  9. 前端学习(2825):vs开发小程序的插件
  10. android 动态换肤框架,GitHub - ss520k/Android-Skin-Loader: 一个通过动态加载本地皮肤包进行换肤的皮肤框架...
  11. 枚举类型用法_Mybatis-plus常见用法总结三
  12. java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理
  13. 技术架构演进|0到千万DAU,微淘如何走过?
  14. 图像语义分割 -- FCN
  15. bzoj2186 莎拉公主的困惑 积性函数
  16. python临床数据_关于体温、性别、心率的临床数据简单分析
  17. Git 学习笔记--git 查看某个文件的修改历史
  18. 在部署服务器端的时候postgresql调试和远程连接操作需要考虑好远程连接问题。
  19. 进入AI领域做产品 —— 我的自学之路
  20. understand 代码解析工具的使用

热门文章

  1. .nav ul .mall a:hover 是什么意思
  2. 读文章《新阶级论:寒门难贵,豪门难收》
  3. 29岁程序员,该怎么在写作、沟通、能力方面提升自己?
  4. 【原创】小时候特别喜欢玩的强手棋游戏
  5. 沪牌-上海牌照-拍牌经验分享: 我是如何三次拍中的?
  6. mysql 查询当前时间到毫秒_MySQL 关于毫秒和微秒的处理,MySQL获取毫秒!
  7. Linux进程管理软件supervisord使用心得
  8. 苹果mac电脑的end 键和home键在哪
  9. 七夕节送女朋友什么礼物、能让女生感动到哭的礼物推荐
  10. matlab神经网络工具箱的使用