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

454.四数相加||

题目:

454. 四数相加 II - 力扣(LeetCode)

思路:

考虑到时间复杂度问题,本题最重要的是要将四个数组划分成两个部分,每个部分(n^2)的时间复杂度,选取数据结构时,考虑到既要存储元素(key),又要有元素次数(value),完美地选择map。

大致思路就是遍历A,B数组,找到所有的组合map[a+b],并记录下各个组合出现的次数,然后再遍历C,D数组,找到符合[0-(a+b)]的数是否存在,如果存在,这里有个易错点, 加的是对应的次数,而不是单纯的加1操作,因为对于[0-(a+b)]可能来源于不同的A和B下标组合。

代码:

class Solution {
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {unordered_map< int , int >map;for(int a:nums1){for(int b:nums2){map[a+b]++;//进行填数}}  int count = 0;for(int c:nums3){for(int d:nums4){if(map.find(0-(c+d)) != map.end())//此数存在匹配count+=map[0-(c+d)];}}  return count;}
};

http://www.lryc.cn/news/470334.html

相关文章:

  • 禅道源码部署
  • ️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具
  • 【Android】多渠道打包配置
  • Spring Boot Configuration和AutoConfiguration加载逻辑和加载顺序调整
  • 点餐系统需求分析说明书(软件工程分析报告JAVA)
  • Python条形图 | 指标(特征)重要性图的绘制
  • 危险物品图像分割系统:一键训练
  • 城市景色视频素材下载好去处
  • 基于SSM美容院管理系统的设计
  • Threejs 实现3D 地图(04)3d 地图的柱状图和文字显示
  • Oracle 第2章:安装与配置Oracle
  • 动态规划 —— 斐波那契数列模型-解码方法
  • PPT / Powerpoint中利用LaTeX输入公式
  • C++ 模板专题 - 类型擦除
  • RuoYi-Vue项目 重点代码讲解
  • pandas习题 024:用字典构造 DataFrame
  • 如何在Node.js中执行解压缩文件操作
  • 梦熊 CSP-S模拟赛 T3 youyou 的序列 II
  • 记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置
  • opencv-platform实现人脸识别
  • leetcode 有重复字符串的排列组合
  • 【大数据学习 | kafka】kafka的组件架构
  • Python基于TensorFlow实现简单循环神经网络回归模型(SimpleRNN回归算法)项目实战
  • torch.isclose
  • Python记录-字典
  • python读取学术论文PDF文件内容
  • 5550 取数(max)
  • Windows常用网络命令
  • 地磁传感器(学习笔记上)
  • 使用 NumPy 和 Matplotlib 进行高级数据可视化:实践指南