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

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

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

    }
};

相关文章:

  • 程序代码篇---C/C++中的变量存储位置
  • vite 开启 gzip压缩
  • 文章精读篇——用于遥感小样本语义分割的可学习Prompt
  • 14.11 LangChain VectorStore 架构解析:构建高效大模型数据管道的核心技术
  • deepseek 引用本地知识库
  • Python项目源码34:网页内容提取工具1.0(Tkinter+requests+html2text)
  • Git操作整体流程
  • 技术总结汇总
  • 23种设计模式 - 空对象模式
  • 2 20 数据开发面试题汇总
  • Trae+Qt+MSVC环境配置
  • 探索与Cursor协作创建一个完整的前后端分离的项目的最佳实践
  • 2.21力扣-回溯组合
  • 『大模型笔记』详细对比GraphRAG与传统RAG!
  • 软件架构设计:信息系统基础
  • 《论软件的可靠性评价》审题技巧 - 系统架构设计师
  • 单片机总结【GPIO/TIM/IIC/SPI/UART】
  • 学习笔记-沁恒第五讲-米醋
  • 基于Flink SQL实现7天用户行为风险识别,结合滚动窗口预聚合与CEP复杂事件处理技术,根据用户7天的动作,包括交易,支付,评价等行为,识别用户的风险等级
  • JVM预热
  • 北部艳阳高照、南部下冰雹,五一长假首日上海天气很“热闹”
  • 受天气等影响SC8041航班三次备降延误超12小时,山航致歉
  • 莫名的硝烟|“我们最好记住1931年9月18日这个日子”
  • 铁路上海站今日预计发送旅客65.8万人次,同比增长超16%
  • 阿里开源首个“混合推理模型”:集成“快思考”、“慢思考”能力
  • 我的科学观|张峥:AI快速迭代,我们更需学会如何与科技共处