当前位置: 首页 > news >正文

哈希表第6/9题--四数相加II

题目描述

给你四个整数数组 nums1nums2nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

示例 1:

输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]
输出:2
解释:
两个元组如下:
1. (0, 0, 0, 1) -> nums1[0] + nums2[0] + nums3[0] + nums4[1] = 1 + (-2) + (-1) + 2 = 0
2. (1, 1, 0, 0) -> nums1[1] + nums2[1] + nums3[0] + nums4[0] = 2 + (-1) + (-1) + 0 = 0

示例 2:

输入:nums1 = [0], nums2 = [0], nums3 = [0], nums4 = [0]
输出:1

  提示:

  • n == nums1.length
  • n == nums2.length
  • n == nums3.length
  • n == nums4.length
  • 1 <= n <= 200
  • -228 <= nums1[i], nums2[i], nums3[i], nums4[i] <= 228

LeetCode链接:leetcode454

思路分析

首先定义一个hashmap,此处是字典类型,它的key放前两个数组中取出的n1和n2的和,value存放n1和n2之和的出现的次数。遍历前两个数组,统计它们所有的和的可能并统计这些和出现的次数,存放到字典的key和value中;

定义一个count变量,用来统计n1+n2+n3+n4=0出现的次数,遍历后两个数组取出n3和n4的和。如果要满足n1+n2+n3+n4=0,那么n3+n4必定和n1+n2互为相反数,所以-(n3+n4)=n1+n2, 定义key=-(n3+n4), 再hashmap中遍历key,叠加key的value,即可得出count的最终结果。

代码分析

class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:# 使用字典存储nums1和nums2中的元素及其和hashmap = dict()for n1 in nums1:for n2 in nums2:# value记录两数之和出现的次数,key记录两数之和if n1+n2 in hashmap:hashmap[n1+n2] += 1# 如果两数之和第一次出现则value设置为1else:hashmap[n1+n2] =  1# 如果 -(n1 +n2)存在于nums3和nums4, 存入结果count = 0for n3 in nums3:for n4 in nums4:# 此处的key等价于n1+n2, 因为要求的是n1+n2+n3+n4==0key = -n3 - n4# 倒查如果hashmap中存在n3和n4和的相反数,则符合条件,则将这个相反数出现的次数即value叠加起来if key in hashmap:count += hashmap[key]return count

相关文章:

哈希表第6/9题--四数相加II

题目描述&#xff1a; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 1&#xff1a; 输入&…...

使用JavaScript将富文本HTML转换为纯文本

在Web开发中&#xff0c;我们经常需要处理HTML内容&#xff0c;但有时为了特定的目的&#xff0c;比如文本处理、搜索或显示在非HTML环境中&#xff0c;我们可能希望将富文本HTML转换为纯文本。这里&#xff0c;我们将探讨如何使用JavaScript来实现这一功能。 为什么要将HTML转…...

2024-05-13 问AI: 介绍一下 google wavenet 声码器

文心一言 Google的WaveNet声码器是一个深度学习模型&#xff0c;用于生成高质量的音频信号&#xff0c;特别是人类语音。与传统的声码器相比&#xff0c;WaveNet可以生成更加自然和流畅的音频&#xff0c;因为它直接模拟了原始音频信号的波形生成过程。 WaveNet的核心思想是使…...

当代 Qt 正确的 安装方法 及 多版本切换

此文写于 20240511 首先去网站Index of /official_releases/online_installers下载一个安装器 安装器有什么用? 可以浏览安装版本 安装组件 安装器版本越能 能装的东西越多 现在只能选Qt5 和 Qt6 至于你公司用的Qt4 我也没招 见招时再拆招 安装器 默认国外源 可以换国内…...

matlab使用教程(70)—修改坐标区属性

1.控制坐标轴长度比率和数据单位长度 您可以控制 x 轴、y 轴和 z 轴的相对长度&#xff08;图框纵横比&#xff09;&#xff0c;也可以控制一个数据单位沿每个轴的相对长度&#xff08;数据纵横比&#xff09;。 1.1图框纵横比 图框纵横比是 x 轴、y 轴和 z 轴的相对长度。默认…...

手撕C语言题典——反转链表

目录 前言 一.思路 1&#xff09;创建新链表 2&#xff09;创建三个指针 二.代码实现 搭配食用更佳哦~~ 数据结构之单单单——链表-CSDN博客 数据结构之单链表的基本操作-CSDN博客 前面学了单链表的相关知识&#xff0c;我们来尝试做一下关于顺序表的经典算法题~ 前言 反转…...

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架&#xff0c;它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能&#xff0c;比如语音合成&#xff08;就是让机器人能说话&#xff09;&#xff0c;还能理解和处理多种类型的信息&#xff0c;不仅限于文字…...

Linux网络编程】传输层中的TCP和UDP(UDP篇)

【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09; 目录 【Linux网络编程】传输层中的TCP和UDP&#xff08;UDP篇&#xff09;传输层再谈端口端口号范围划分认识知名端口号netstatiostatpidofxargs UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲数据UDP使…...

Ciphey无法安装的解决办法

安装过程纯属自己实践&#xff0c;满满干货 困扰我几天的问题终于解决了 我看着教程在window上安装 python3.8/python3.9/python3.10无论如何都安装不上&#xff0c; 在win10虚拟机仍然安装不上 可能是我电脑环境问题 解决办法&#xff1a; 在kali中安装&#xff0c;但是…...

交互之舞:Processing中的用户互动与响应设计

前言&#xff1a; &#x1f31f;在前两篇文章中&#xff0c;我们已经学会了如何绘制静态图形和创建动态动画。今天&#xff0c;我们将迈入一个新的领域——交互设计。在Processing中&#xff0c;用户互动是创造沉浸式体验的关键。让我们一起探索如何让用户与你的艺术作品互动&…...

unetr_plus_plus(UNETR++、nnU-Net)系列数据处理理解汇总

unetr_plus_plus&#xff08;UNETR、nnU-Net&#xff09;系列数据处理理解汇总&#xff0c;这是一个 3D 图像分割的任务系列集。 为什么说他们是一个系列集合呢&#xff1f;主要是因为&#xff1a; 论文的训练和评价数据集是一样的&#xff0c;都是来自于10全挑战赛&#xff…...

稻盛和夫《活法》读后感

最近几天又重读了一边稻盛和夫的《活法》&#xff0c;里面的观点让我感触颇多&#xff0c;现分享给诸君。 稻盛和夫毕业后&#xff0c;适逢经济萧条&#xff0c;没有好机会进入大公司深造&#xff0c;只能在一名教授的推荐下进入了一家做陶瓷绝缘体的公司&#xff0c;虽然公司…...

Smurf 攻击是不是真的那么难以防护

Smurf攻击是一种网络攻击方式&#xff0c;属于分布式拒绝服务&#xff08;DDoS&#xff09;攻击的变种。以 1990 年代流行的名为 Smurf 的漏洞利用工具命名。该工具创建的 ICMP 数据包很小&#xff0c;但可以击落大目标。 它利用ICMP协议中的回声请求&#xff08;ping&#x…...

ASP.NET之图像控件

在ASP.NET中&#xff0c;用于显示图像的控件主要是Image控件&#xff0c;Image控件属于ASP.NET Web Forms的一部分&#xff0c;它允许你在Web页面上显示图像。以下是如何在ASP.NET Web Forms中使用 1. 添加Image控件到页面 在ASP.NET Web Forms页面上&#xff0c;你可以通过设…...

二级Java第五套真题(乱序版)含真题解析

一. 单选题(共39题,39分) 1. (单选题, 1分) 阅读下列代码 public class Test implements Runnable { public void run (Thread t) { System.out.println("Running."); } public static void main (String[ ] args) { T…...

【C++】GNU Debugger (GDB) 使用示例

文章目录 GDB 使用示例GDB的常用命令示例 GDB 使用示例 GDB的常用命令 GDB&#xff08;GNU Debugger&#xff09;是一种Unix下的程序调试工具&#xff0c;用于调试C、C等编程语言编写的程序。以下是一些GDB的常用命令&#xff1a; 启动和退出&#xff1a; run 或 r&#xf…...

Qlik Sense :使用智能搜索Smart Search

智能搜索 智能搜索是 Qlik Sense 中的全局搜索工具&#xff0c;可让您从应用程序中的任何工作表搜索应用程序中的整个数据集。可通过点击 从工作表中的选择项栏使用智能搜索。 通过智能搜索字段&#xff0c;您可以从任何工作表搜索您的应用程序中的完整数据集。 信息注释 智…...

React 学习-1

安装--使用npm 元素渲染 React只定义一个根节点&#xff0c;由 React DOM 来管理。通过ReactDOM.render()方法将元素渲染到根DOM节点上。 React 元素都是不可变的。当元素被创建之后&#xff0c;你是无法改变其内容或属性的。目前更新界面的唯一办法是创建一个新的元素&#xf…...

Libcity 笔记:自定义模型

在/libcity/model/trajectory_loc_prediction/&#xff0c;我们复制一份Deepmove.py&#xff0c;得到DM_tst.py&#xff0c;我们不改变其中的机制&#xff0c;只动class name 然后修改相同目录下的__init__.py&#xff1a; 修改task_config文件&#xff1a; 在config/model/tra…...

易图讯科技三维电子沙盘系统

深圳易图讯科技有限公司&#xff08;www.3dgis.top&#xff09;创立于2013年&#xff0c;专注二三维地理信息、三维电子沙盘、电子地图、虚拟现实、大数据、物联网和人工智能技术研发&#xff0c;获得20多项软件著作权和软件检测报告&#xff0c;成功交付并实施了1000多个项目&…...

CodeBlocks 20.03 安装与汉化保姆级教程(附中文包下载与常见问题解决)

CodeBlocks 20.03 安装与汉化全流程实战指南 对于刚接触C/C开发的初学者来说&#xff0c;选择一款合适的集成开发环境(IDE)是迈入编程世界的第一步。CodeBlocks以其轻量级、跨平台和开源免费的特性&#xff0c;成为众多教育机构和自学者的首选。本文将带你从零开始&#xff0c;…...

告别Qt默认英文!3分钟搞定QMessageBox按钮中文显示(附完整代码示例)

3分钟实现QMessageBox按钮中文显示的实战指南 刚接触Qt开发的程序员经常会遇到一个尴尬问题——精心设计的界面突然弹出英文按钮的对话框。这种"半中半英"的体验在交付给国内客户时尤为明显。今天我们就来解决这个看似简单却困扰很多开发者的问题&#xff0c;无需复杂…...

保姆级教程:用R包MaAsLin2搞定微生物组与临床数据的关联分析(附完整代码)

微生物组与临床数据关联分析实战&#xff1a;MaAsLin2从入门到精通 在微生物组研究中&#xff0c;揭示菌群变化与宿主表型之间的关联是核心科学问题之一。传统统计方法往往难以应对高维稀疏的微生物组数据特性&#xff0c;而专门设计的工具如MaAsLin2&#xff08;Microbiome Mu…...

QT 5.14.2 编译调试踩坑实录:从‘file not found’到‘Illegal byte sequence’的保姆级排错指南

QT 5.14.2 编译调试实战&#xff1a;从文件缺失到编码陷阱的深度排错手册 接手一个遗留的QT串口通信项目时&#xff0c;本以为只是简单的代码移植&#xff0c;却在QT 5.14.2环境下遭遇了三个典型的"拦路虎"&#xff1a;神秘的库文件失踪、程序突然崩溃的灵异事件&…...

无王无帝定乾坤,来自田间第一人 凰标为律正人心

无王无帝定乾坤&#xff0c;来自田间第一人。 世间最大的乱象&#xff0c;从来不止山河动荡、世道纷争&#xff0c;更是人心失序、良知蒙尘。一、旧世千年&#xff1a;王权为纲&#xff0c;律法为束旧制之弊具体表现规则来源由权贵制定&#xff0c;标准随权势偏移治理逻辑重压制…...

终极指南:5分钟在Windows上配置JoyCon控制器驱动,解锁完整PC游戏体验

终极指南&#xff1a;5分钟在Windows上配置JoyCon控制器驱动&#xff0c;解锁完整PC游戏体验 【免费下载链接】JoyCon-Driver A vJoy feeder for the Nintendo Switch JoyCons and Pro Controller 项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver 还在为Swi…...

转行网络安全月薪20K,怎么做到的?

转行网络安全月薪2万&#xff0c;怎么做到的&#xff1f; 近年来&#xff0c;越来越多朋友寻找新的职业发展机会&#xff0c;开始将目光聚焦到了网络安全产业。 前两天吃饭跟一帮朋友闲聊&#xff0c;得知曾一起共事的运维同事找到新工作&#xff0c;入职了一家专门做网络安全…...

垃圾分类助手APP - 安卓期末大作业

垃圾分类助手APP - 安卓期末大作业 【下载地址】垃圾分类助手APP-安卓期末大作业 本项目是一个基于Android Studio的安卓应用程序&#xff0c;专为满足垃圾分类指导需求设计。作为一款学习与实践相结合的期末大作业&#xff0c;它不仅集成了丰富的前端和后端功能&#xff0c;还…...

告别元器件搜索焦虑:立创EDA专业版+立创商城联动使用技巧全解析

告别元器件搜索焦虑&#xff1a;立创EDA专业版立创商城联动使用技巧全解析 在电子设计领域&#xff0c;元器件选型与供应链管理一直是工程师面临的核心挑战之一。当项目进入关键阶段&#xff0c;一个看似简单的0.1uF电容缺货或封装不匹配&#xff0c;就可能引发连锁反应&#x…...

【亲测免费】 Unity WebGL中文输入插件——为WebGL游戏开启无缝中文输入新时代!

Unity WebGL中文输入插件——为WebGL游戏开启无缝中文输入新时代&#xff01; 【下载地址】UnityWebGL中文输入插件 本仓库提供了一个Unity WebGL中文输入插件&#xff0c;该插件支持输入法跟随和全屏功能。通过使用此插件&#xff0c;开发者可以在WebGL平台上实现中文输入&…...