leetcode之四数相加
题目介绍
给定四个包含整数的数组列表 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之四数相加相关推荐
- LeetCode两数相加
一.两数相加 给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. 你可以假设 ...
- leetcode 两数相加
给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...
- leetcode 两数相加c++_167. 两数之和 II - 输入有序数组
167. 两数之和 II - 输入有序数组 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1和 index2,其中 index1必须小 ...
- 算法练习之leetcode两数相加(1)
题目: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示 ...
- leetcode 两数相加,在ubuntu上编译通过,显示结果了,在leetcode上报错了,找错在哪?
给你两个 非空 的链表,表示两个非负的整数.它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字. 请你将两个数相加,并以相同形式返回一个表示和的链表. 你可以假设除了数字 0 ...
- leetcode第一题两数相加
leetcode两数相加: 提示: 问题描述: int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for (int ...
- 【前端来刷LeetCode】两数之和与两数相加
大部分玩前端的小伙伴,在算法上都相对要薄弱些,毕竟调样式.调兼容就够掉头发的了,哪还有多余的头发再去折腾. 确实在前端中需要使用到算法的地方是比较少,但若要往高级方向发展,算法的基本功就非常重要啦.对 ...
- leetcode 454. 4Sum II | 454. 四数相加 II(Java)
题目 https://leetcode.com/problems/4sum-ii/ 题解 四数相加问题. 对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应 ...
- LeetCode题库第2题 两数相加
两数相加 LeetCode题库第二题 两数相加 看完题目,就可以将题目抽象为三个指针,前两个指针是l1和l2,后一个指针是我们要求的,这三个指针同时移动,由于可能会产生进位,所以可以用一个变量来存储这 ...
- 两数之和,两数相加(leetcode)
我们都知道算法是程序员成长重要的一环,怎么才能提高算法呢, 出来在网上看视频之外,动手练习是非常重要的.leetcode 就是一个非常好的锻炼平台. 1. 两数之和,在 leetcode 里面是属于 ...
最新文章
- Linux内核编译过程分析
- AI破解脑电波,准确率超80%!高度还原你眼中最美的ta
- Django error信息邮件通知功能配置部署
- grails的controller和action那点事---远程调试groovy代码
- buu 萌萌哒的八戒
- 算法题题目集合一,欢迎评论留言
- TS基础1(类型定义、接口)-学习笔记
- 防SQL注入的最好实现方式是什么?
- ArcGIS——Window Server2016中的安装10.2问题
- 集大成者 —— 荀子
- 深度解读 Flink 1.11:流批一体 Hive 数仓
- 【POJ2104】K-th Number(区间第k小的数---主席树模版题+离散化)
- 手把手教你学单片机,学完马上能自己编写开发程序
- 禅道类似软件_整理几款开源项目管理软件
- npm 安装参数中的 --save-dev 是什么意思
- DBeaver出现:The Network Adapter could not establish the connection 已解决
- Think in Java 4 中关于使用XOM操作xml文件
- 专访哈佛公共卫生学院院长胡里奥·弗兰克
- mysql常用增删改查命令总结
- linux|使用Telnet进行与板子通讯
热门文章
- freemarker在线编辑
- 设置布局默认为LinearLayout,却成了RelativeLayout
- 简单易懂实例说明如何设计子网掩码
- 在centos 7.0上利用yum一键安装mono
- C# 通过PostMessage完成UI的更新
- vs2010下libevent的使用
- iPhoneアプリに本格ホラーアドベンチャー監獄脱出少女 android
- display:none与visibility:hidden的区别 ,还有html5的新属性hidden
- jquery对象与js对象的相互转换
- 图文详解——将本地项目上传到码云(gitee)远程仓库