454. 4Sum II ——查找本质:hash最快,二分次之
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最快,二分次之相关推荐
- 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 ...
- 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遍历求对应和与 ...
- 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 ...
- leetcode 454. 4Sum II | 454. 四数相加 II(Java)
题目 https://leetcode.com/problems/4sum-ii/ 题解 四数相加问题. 对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应 ...
- 白菜刷LeetCode记-454. 4Sum II
昨天太忙,今天补上这一题.题目如下: 首先能够想到的就是使用比较暴力的方法,通过四层循环去找到结果,但是这种结果肯定是超时的,想了好久都没想到,在网上找到了使用map实现的方法.代码如下: 1 /** ...
- 二分查找python实现代码_二分查找——Python实现
一.排序思想 二.python实现 def binarySearchDemo(arr, key): """ python二分查找非递归方式 :param arr:待排序列 ...
- java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...
顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...
- (王道408考研数据结构)第七章查找-第二节2:二分查找及其判定树
文章目录 一:二分查找法基本思想 二:二分查找法代码 三:二分查找法效率分析 三:二分查找判定树的构造 (1)规律 (2)构造 (3)特点 (4)时间复杂度 一:二分查找法基本思想 二分查找法(Bin ...
- 对长度为200的有序表进行二分查找_程序员常用的查找算法(顺序、二分、插值、分块、斐波那契)...
顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...
最新文章
- python交并补_Python 集合的交差并补操作及方法
- 【Vue Laravel-mix】Error with Vue lazy loading components: “Failed to resolve async component“
- spark 笔记 1: 如何着手
- 第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法
- 静态分析:IDA逆向代码段说明 text、idata、rdata、data
- mysql分页查询报错,及解决
- STTN、DSTT、FuseFormer总结(它们改进了什么?)
- springboot的基础面试题
- linux 极路由救砖,极路由刷机教程 极路由救砖方法图文详解
- “K米” 软件产品评测
- pro android python with sl4a,Pro Android Python with SL4A
- 大恒相机连续采集并保存图片
- 东大22春《马克思主义基本原理概论》在线平时作业1百分非答案
- 微信小程序:关注公众号组件自定义样式
- 视觉SLAM十四讲学习笔记——第十三讲 实践:设计SLAM系统
- 市场营销学9——产品策略
- 【unity 保卫星城】--- 开发笔记05(普通子弹武器)
- 前端解决:此图片来自微信公众平台未经允许不可引用
- java 微信图片盗链破解_隐藏图片地址,伪造来路Referer实现绕过微信图片的防盗链机制...
- 袁萌:Linux机器人来我家
热门文章
- 计算机语言常用符号含义,符号的含义 - 解析编译原理
- linux修改rc.local权限,Linux 7 的 rc.local 文件需要 添加 +x 权限才会自动执行
- foo php,php – $foo === TRUE和TRUE === $foo有什么区别?
- android调用unity,大神们,请问unity和Android交互的时候,为什么总是调用不到方法...
- python 浏览器自动化测试,python中使用chrome进行自动化测试,浏览器变量设置
- 入职阿里啦!java面试技巧之不要给自己挖坑实战干货
- tensorflow和keras的版本问题
- lower_boundupper_bound
- linux无法运行病毒,{转}为什么linux系统不容易中病毒?
- python生成斐波那契_python学习-生成器(generator)及斐波那契;yield