python3四数相加 II

python3四数相加 II

454. 四数相加 II

给定四个包含整数的数组列表 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 到 228 – 1 之间,最终结果不会超过 231 – 1 。

例如:

输入:
A = [ 1, 2]
B = [-2,-1]
C = [-1, 2]
D = [ 0, 2]

输出:
2

解释:
两个元组如下:

  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

思路

我们可以将四个数组分成两部分,AA 和 BB 为一组,CC 和 DD 为另外一组。

对于 AA 和 BB,我们使用二重循环对它们进行遍历,得到所有 A[i]+B[j]A[i]+B[j] 的值并存入哈希映射中。对于哈希映射中的每个键值对,每个键表示一种 A[i]+B[j]A[i]+B[j],对应的值为 A[i]+B[j]A[i]+B[j] 出现的次数。

对于 CC 和 DD,我们同样使用二重循环对它们进行遍历。当遍历到 C[k]+D[l]C[k]+D[l] 时,如果 -(C[k]+D[l])−(C[k]+D[l]) 出现在哈希映射中,那么将 -(C[k]+D[l])−(C[k]+D[l]) 对应的值累加进答案中。

最终即可得到满足 A[i]+B[j]+C[k]+D[l]=0A[i]+B[j]+C[k]+D[l]=0 的四元组数目。


class Solution:
    def fourSumCount(self, A: List[int], B: List[int], C: List[int], D: List[int]) -> int:
        rst = 0
        dics = {
   }
        for a in A:
            for b in B:
                sum1 = a+b 
                dics[sum1] = dics.get(sum1,0)+1
        for c in C:
            for d in D:
                sum2 = c+d 
                if -sum2 in dics:
                    rst += dics[-sum2]
        return rst
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100103.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]

    小程序的图片上传wx.uploadFile及后台PHP接收文件并存储到服务器[通俗易懂]前台代码wxml:<buttonbindtap=’chooseImg’>选择图片</button>//图片选择<view><imagesrc='{{img_l}}’bindtap=’preview_img’></image></view>//图片预览<buttonbindtap=’up_img’…

    2022年6月17日
    46
  • 数据库的左右连接和内连接_数据库各种连接的区别

    数据库的左右连接和内连接_数据库各种连接的区别原英文文章链接:https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins准备表A:–auto-generateddefinitionCREATETABLEtable_a(PKINT(10)NOTNULLPRIMARYKEY,Va…

    2022年9月19日
    0
  • pycharm交互式编程_环境影响因素有哪些

    pycharm交互式编程_环境影响因素有哪些讲解关于PycharmIDE当中一个叫做PythonConsole交互式开发环境。关于这个环境长什么样子以及怎么用,可以跟着我的步骤来看看。一、使用PythonConsole交互式开发环境打开Pycharm界面,然后单击界面最下面的PythonConsole这个按钮,单击后会调出一个控制台,这个控制台将自动加载已经调试过的解释器。在这个控制台里,程序员可以在三个绿色箭头>>>后面直接书写代码,在不加print的时候也行输出数据,当然print在这里也是可以用的。左边

    2022年8月27日
    3
  • 数学函数图像处理_matlab基本图像处理

    数学函数图像处理_matlab基本图像处理文章目录1.imdilate2.imresize3.imfinfo4.imcomplement总结1.imdilate功能:进行膨胀操作介绍用法:IM2=imdilate(IM,SE)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。SE为由strel函数生成的结构元素对象。IM2=imdilate(IM,NHOOD)对灰度图像或二值图像IM进行膨胀操作,返回结果图像IM2。参量NHOOD是一个由O和1组成的矩阵,指定邻域。IM2=imdilate(…,SHAPE)对图

    2022年10月5日
    0
  • 安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)…「建议收藏」

    安装python应该先安装pycharm还是python_Pycharm及python安装详细步骤及PyCharm配置整理(推荐)…「建议收藏」首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址:https://www.python.org/downloads/),进入之后如下图,选择图中红色圈中区域进行下载。2、下载完成后如下图所示3、双击exe文件进行安装,如下图,并按照圈中区域进行设置,切记要勾选打钩的框,然后再点击Customizeinstallation进入到下一步:4、对于上图中,可以通过Brow…

    2022年8月28日
    3
  • extern用法总结!

    extern用法总结!

    2021年11月28日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号