题目介绍

给定四个包含整数的数组列表 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-2^{28}−228~ 228−12^{28}-1228−1之间,最终结果不会超过 231−12^{31} - 1231−1 。

题目分析

这是典型的多数相加题目,可以分成两部分,前面两个数组A、B依次遍历相加求和,并建立一个map来保存求和结果以及该和出现的次数,后面对C、D继续进行求和,这个时候对和取其相反数,这样A+B+C+D=0,只需看其相反数在原来map中出现的次数即可,依次遍历,计数,具体代码如下所示:

源代码

class Solution {
public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {int sum=0;int count=0;int dis=A.size();map<int,int> result;for(int i=0;i<dis;i++){ for(int j=0;j<dis;j++){sum=A[i]+B[j];++result[sum];}}for(int i=0;i<dis;i++){ for(int j=0;j<dis;j++){sum=C[i]+D[j];if(result[-sum]>0){count=count+result[-sum];}}}return count;}
};

leetcode之四数相加相关推荐

  1. LeetCode两数相加

    一.两数相加 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. 你可以假设 ...

  2. leetcode 两数相加

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...

  3. leetcode 两数相加c++_167. 两数之和 II - 输入有序数组

    167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1和 index2,其中 index1必须小 ...

  4. 算法练习之leetcode两数相加(1)

    题目: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示 ...

  5. leetcode 两数相加,在ubuntu上编译通过,显示结果了,在leetcode上报错了,找错在哪?

    给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. 你可以假设除了数字 0 ...

  6. leetcode第一题两数相加

    leetcode两数相加: 提示: 问题描述: int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for (int ...

  7. 【前端来刷LeetCode】两数之和与两数相加

    大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...

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

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

  9. LeetCode题库第2题 两数相加

    两数相加 LeetCode题库第二题 两数相加 看完题目,就可以将题目抽象为三个指针,前两个指针是l1和l2,后一个指针是我们要求的,这三个指针同时移动,由于可能会产生进位,所以可以用一个变量来存储这 ...

  10. 两数之和,两数相加(leetcode)

    我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...

最新文章

  1. Linux内核编译过程分析
  2. AI破解脑电波,准确率超80%!高度还原你眼中最美的ta
  3. Django error信息邮件通知功能配置部署
  4. grails的controller和action那点事---远程调试groovy代码
  5. buu 萌萌哒的八戒
  6. 算法题题目集合一,欢迎评论留言
  7. TS基础1(类型定义、接口)-学习笔记
  8. 防SQL注入的最好实现方式是什么?
  9. ArcGIS——Window Server2016中的安装10.2问题
  10. 集大成者 —— 荀子
  11. 深度解读 Flink 1.11:流批一体 Hive 数仓
  12. 【POJ2104】K-th Number(区间第k小的数---主席树模版题+离散化)
  13. 手把手教你学单片机,学完马上能自己编写开发程序
  14. 禅道类似软件_整理几款开源项目管理软件
  15. npm 安装参数中的 --save-dev 是什么意思
  16. DBeaver出现:The Network Adapter could not establish the connection 已解决
  17. Think in Java 4 中关于使用XOM操作xml文件
  18. 专访哈佛公共卫生学院院长胡里奥·弗兰克
  19. mysql常用增删改查命令总结
  20. linux|使用Telnet进行与板子通讯

热门文章

  1. freemarker在线编辑
  2. 设置布局默认为LinearLayout,却成了RelativeLayout
  3. 简单易懂实例说明如何设计子网掩码
  4. 在centos 7.0上利用yum一键安装mono
  5. C# 通过PostMessage完成UI的更新
  6. vs2010下libevent的使用
  7. iPhoneアプリに本格ホラーアドベンチャー監獄脱出少女 android
  8. display:none与visibility:hidden的区别 ,还有html5的新属性hidden
  9. jquery对象与js对象的相互转换
  10. 图文详解——将本地项目上传到码云(gitee)远程仓库