Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such that A[i] + B[j] + C[k] + D[l] is zero.

To make problem a bit easier, all A, B, C, D have same length of N where 0 ≤ N ≤ 500. All integers are in the range of -228 to 228 - 1 and the result is guaranteed to be at most 231 - 1.

Example:

Input:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]Output:
2Explanation:
The two tuples are:
1. (0, 0, 0, 1) -> A[0] + B[0] + C[0] + D[1] = 1 + (-2) + (-1) + 2 = 0
2. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0
class Solution(object):def fourSumCount(self, A, B, C, D):""":type A: List[int]:type B: List[int]:type C: List[int]:type D: List[int]:rtype: int
Input:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]
Output:
2
A[i]+B[j]=E[n*n] [-1,0,0,1]
C[i]+D[j]=F[n*n] [-1,1,2,4]
E[i]+E[j]=0      -1+1=0, 1+(-1)=0"""E = {}for a in A:for b in B:if a+b not in E:E[a+b] = 0E[a+b] += 1ans = 0for c in C:for d in D:if -(c+d) in E:ans += E[-(c+d)]return ans                

转载于:https://www.cnblogs.com/bonelee/p/6220191.html

454. 4Sum II ——查找本质:hash最快,二分次之相关推荐

  1. LeetCode 454. 4Sum II

    454. 4Sum II Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) the ...

  2. LeetCode 454 4Sum II(哈希法)

    问题:给出四个数组A,B,C,D,问有多少组(i,j,k,l)满足A[i]+B[j]+C[k]+D[l]=0 思路:如果直接数据遍历,时间复杂度为O(n^4).可以考虑降维.先计算A,B遍历求对应和与 ...

  3. 454. 4Sum II

    Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are such t ...

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

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

  5. 白菜刷LeetCode记-454. 4Sum II

    昨天太忙,今天补上这一题.题目如下: 首先能够想到的就是使用比较暴力的方法,通过四层循环去找到结果,但是这种结果肯定是超时的,想了好久都没想到,在网上找到了使用map实现的方法.代码如下: 1 /** ...

  6. 二分查找python实现代码_二分查找——Python实现

    一.排序思想 二.python实现 def binarySearchDemo(arr, key): """ python二分查找非递归方式 :param arr:待排序列 ...

  7. java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

  8. (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树

    文章目录 一:二分查找法基本思想 二:二分查找法代码 三:二分查找法效率分析 三:二分查找判定树的构造 (1)规律 (2)构造 (3)特点 (4)时间复杂度 一:二分查找法基本思想 二分查找法(Bin ...

  9. 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...

    顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...

最新文章

  1. python交并补_Python 集合的交差并补操作及方法
  2. 【Vue Laravel-mix】Error with Vue lazy loading components: “Failed to resolve async component“
  3. spark 笔记 1: 如何着手
  4. 第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法
  5. 静态分析:IDA逆向代码段说明 text、idata、rdata、data
  6. mysql分页查询报错,及解决
  7. STTN、DSTT、FuseFormer总结(它们改进了什么?)
  8. springboot的基础面试题
  9. linux 极路由救砖,极路由刷机教程 极路由救砖方法图文详解
  10. “K米” 软件产品评测
  11. pro android python with sl4a,Pro Android Python with SL4A
  12. 大恒相机连续采集并保存图片
  13. 东大22春《马克思主义基本原理概论》在线平时作业1百分非答案
  14. 微信小程序:关注公众号组件自定义样式
  15. 视觉SLAM十四讲学习笔记——第十三讲 实践:设计SLAM系统
  16. 市场营销学9——产品策略
  17. 【unity 保卫星城】--- 开发笔记05(普通子弹武器)
  18. 前端解决:此图片来自微信公众平台未经允许不可引用
  19. java 微信图片盗链破解_隐藏图片地址,伪造来路Referer实现绕过微信图片的防盗链机制...
  20. 袁萌:Linux机器人来我家

热门文章

  1. 计算机语言常用符号含义,符号的含义 - 解析编译原理
  2. linux修改rc.local权限,Linux 7 的 rc.local 文件需要 添加 +x 权限才会自动执行
  3. foo php,php – $foo === TRUE和TRUE === $foo有什么区别?
  4. android调用unity,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...
  5. python 浏览器自动化测试,python中使用chrome进行自动化测试,浏览器变量设置
  6. 入职阿里啦!java面试技巧之不要给自己挖坑实战干货
  7. tensorflow和keras的版本问题
  8. lower_boundupper_bound
  9. linux无法运行病毒,{转}为什么linux系统不容易中病毒?
  10. python生成斐波那契_python学习-生成器(generator)及斐波那契;yield