博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
4sumii
阅读量:5058 次
发布时间:2019-06-12

本文共 1451 字,大约阅读时间需要 4 分钟。

problem description:

  there is four number list named A,B,C,D; now you should out put the num of  tuples which statisfy A[i] +B[j]+C[k]+D[l] =0 

i.e:

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 = 02. (1, 1, 0, 0) -> A[1] + B[1] + C[0] + D[0] = 2 + (-1) + (-1) + 0 = 0 解法:主要方法采用的是哈希表。将A和B列表中的每个值都进行两两相加,将得出的值作为哈希表的索引然后将哈希表该索引下的值加一。然后将C和D中的每个值两两相加,将所得出的值的相反数作为哈希表的索引,即可 得知相应的值有几种解法,然后进行累加。 python 实现方式:
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        """        dicts = {}        for i in A:            for j in B:                sums = i+j                if sums not in dicts:                    dicts[sums] = 1                else:                    dicts[sums] += 1        out = 0        for k in C:            for l in D:                sums =-(k + l)                if sums in dicts:                    out += dicts[sums]        return out

以上的方法虽有不错,但是还不是最精炼的python代码:

最精炼的python代码,用到了counter模块下的collection函数。它能够统计出相同数值的个数,本质上还是个哈希表

def fourSumCount(self, A, B, C, D):    AB = collections.Counter(a+b for a in A for b in B)    return sum(AB[-c-d] for c in C for d in D)

以上的第一个代码是个人想法,第二个精炼的代码参考自leetcode上stefanporchmann的代码

转载于:https://www.cnblogs.com/whatyouknow123/p/6754332.html

你可能感兴趣的文章
struts2中<s:form>的应用
查看>>
QML学习笔记之一
查看>>
7NiuYun云存储UploadPicture
查看>>
Window 的引导过程
查看>>
python与 Ajax跨域请求
查看>>
Java实体书写规范
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
六、PowerDesigner 正向工程 和 逆向工程 说明
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
贪吃蛇游戏改进
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
“前.NET Core时代”如何实现跨平台代码重用 ——源文件重用
查看>>
【POJ1845】Sumdiv(数论/约数和定理/等比数列二分求和)
查看>>
在WPF中使用Caliburn.Micro搭建MEF插件化开发框架
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
UWP: 掌握编译型绑定 x:Bind
查看>>
asp.net core系列 35 EF保存数据(2) -- EF系列结束
查看>>
WPF程序加入3D模型
查看>>