LeetCode刷题---二分查找---454

news/2025/2/24 19:40:55

四数相加 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

自己的思路和代码

思路

        直接上哈希表,将前两个的数组的和存储的哈希表中,然后有两个数组的和的相反数存储到哈希表中,这样就可以对比出结果了。

代码
class Solution {
public:
    int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {
        int num = 0,temp=0;
        unordered_map<int, int>  sum_map;
        for (auto a : A) {
            for (auto b : B) {
                sum_map[a + b]++;
            }
        }

        for (auto c : C) {
            for (auto d : D) {
                temp = -(c + d);
                if (sum_map.find(temp) != sum_map.end()) num+=sum_map[temp];
            }
        }

        return num;

    }
};


http://www.niftyadmin.cn/n/5864752.html

相关文章

【2025深度学习环境搭建-1】在Win11上用WSL2和Docker解锁GPU加速

建议有&#xff1a; 较新的win11电脑&#xff0c;GPU是nvidia一点点Linux基础一点点Docker基础 一、安装WSL2 【控制面板】》【程序】》【启用或关闭Windows功能】 打开三个功能&#xff1a;【Hyper-V】【Virtual Machine Platform】【适用于Linux的Windows子系统】 可能看…

【Python + STM32 实现外设控制的从0-1实例教程-适合新手】

一、环境搭建与固件烧录 1. 硬件准备 STM32开发板:推荐支持 MicroPython 的型号(如STM32F4 Discovery、NUCLEO-F411RE)。USB转TTL模块:用于串口通信(如CH340、CP2102)。外设模块:LED、温湿度传感器(如DHT11)等。2. 软件准备 MicroPython固件:从MicroPython官网下载对…

PHP二手车置换平台系统小程序源码

二手车置换平台系统 &#x1f697; 基于ThinkPHPUniapp的创新之作&#xff1a;我们倾尽心力&#xff0c;精心打造了一款基于ThinkPHPUniapp框架的二手车置换平台小程序系统&#xff0c;它犹如二手车交易领域的璀璨明珠&#xff0c;熠熠生辉。这个平台不仅为买家和卖家搭建了一…

【数据库维护】如何解决Clickhouse数据库Too many parts报错

如何解决Clickhouse数据库Too many parts/memory exceed limit报错 问题现象 clickhouse数据库服务日志报错Too many parts.Merges are processing significantly slower than inserts exception.clickhouse数据库服务报错memory exceed limit 问题原因分析 针对单张表单个…

汽车零部件ERP软件进销存软件库存管理委外加工计算计件工资软件

本软件为给苏州某汽车零部件公司开发的进销存管理系统 软件除了基本的进销存功能外&#xff0c;主要是加了委外加工的部分即通过委外加工领料单与委外加工入库单来算委外加工费 及通过录入计件工资入库单来算员工计件工资。 github下载地址&#xff1a;https://github.com/oyan…

6. Go接口

一、接口相关概念 理解和掌握接口的使用对于写出优雅且可扩展的 Go 代码至关重要。接口是 Go 语言的核心&#xff0c;它提供了灵活的抽象方式&#xff0c;使得不同类型能够通过共享行为来合作&#xff0c;而不需要彼此依赖具体实现。这种机制对于模块化编程、降低耦合度以及实…

记录一下VScode可以使用nvcc编译,但VS不行的解决方案

最近在学习CUDA编程的东西&#xff0c;出现了一个问题Visual Studio在使用nvcc编译会报错。 D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\vcruntime.h(197): error: invalid redeclaration of type name "size_t&q…

DeepSeek 助力 Vue 开发:打造丝滑的滑块(Slider)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…