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

剑指offer57_和为S的两个数字

和为S的两个数字


输入一个数组和一个数字 s,在数组中查找两个数,使得它们的和正好是 s。

如果有多对数字的和等于 s,输出任意一对即可。

你可以认为每组输入中都至少含有一组满足条件的输出。

数据范围

数组长度 [1,1002]。

样例
输入:[1,2,3,4] , sum=7输出:[3,4]

算法思路

(这就是leetcode第一题,没啥好说的,哈哈。)

核心思路是使用哈希表存储遍历过的数字,对于每个当前数字 x,检查哈希表中是否存在 target - x

  • 若存在,则找到答案,返回 {x, target - x}
  • 若不存在,则将当前数字 x 加入哈希表,继续遍历。
时间复杂度
  • O(n):遍历数组一次(n 为数组长度),哈希表的插入和查找操作平均时间复杂度为 O(1)。
空间复杂度
  • O(n):最坏情况下需要存储所有数组元素(哈希表大小与数组长度线性相关)。
class Solution {
public:vector<int> findNumbersWithSum(vector<int>& nums, int target) {// 使用哈希表存储已遍历的数字unordered_set<int> hash;for (auto x : nums) { // 遍历每个数字// 检查 target - x 是否在哈希表中if (hash.count(target - x)) {// 找到匹配:返回当前数字x和补数(target-x)return {x, target - x};}// 未找到匹配:将当前数字加入哈希表hash.insert(x);}// 未找到任何匹配(题目保证有解,此步可省略)return {};}
};

实例演示

假设输入数组 nums = [1, 2, 3, 4],目标值 target = 6

  1. 遍历 x=1
    • 检查 6-1=5 是否在哈希表 {} → 不存在
    • 插入 1 → 哈希表 {1}
  2. 遍历 x=2
    • 检查 6-2=4 是否在哈希表 {1} → 不存在
    • 插入 2 → 哈希表 {1, 2}
  3. 遍历 x=3
    • 检查 6-3=3 是否在哈希表 {1, 2} → 不存在
    • 插入 3 → 哈希表 {1, 2, 3}
  4. 遍历 x=4
    • 检查 6-4=2 是否在哈希表 {1, 2, 3}存在!
    • 返回结果 {4, 2}(顺序为 [x, target-x]

最终输出:[4, 2](满足 4+2=6)。

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

相关文章:

  • script中crossorigin=“anonymous“是什么意思
  • Redis专题总结
  • 构建AI Agent的完整实战指南:从邮件助手案例看6步落地方法
  • docker基础与常用命令
  • Linux之Zabbix分布式监控篇(一)
  • Elasticsearch 的 `modules` 目录
  • Git常用命令一览
  • 中德英法西五语氛围刷题第一集:HTML命名空间CSS处理
  • Python问题记录`No module named ‘matplotlib‘` 问题解决方案
  • 苍穹外卖项目日记(day05)
  • UI前端大数据可视化实战策略分享:如何设计符合用户认知的数据可视化流程?
  • 以数据为核心,以业务为导向,漫谈数据可视化应用
  • 上门服务APP开发源码商业模式设计与功能架构解析
  • QCustomPlot绘制交互图
  • Django母婴商城项目实践(四)
  • JavaSE 01 类和对象|继承多态
  • Java_Springboot技术框架讲解部分(一)
  • 【C/C++】迈出编译第一步——预处理
  • HCL模拟器的正确开启(Win11不兼容HCL)
  • CVPR2025 Mamba系列
  • 【读书笔记】《C++ Software Design》第二章:The Art of Building Abstractions
  • 使用python 实现一个http server
  • Elasticsearch 线程池
  • MIG_IP核的时钟系统
  • 使用 Java 开发大数据应用:Hadoop 与 Java API 的结合
  • Linux中使用快捷方式加速SSH访问
  • 让 VSCode 调试器像 PyCharm 一样显示 Tensor Shape、变量形状、变量长度、维度信息
  • 细解muduo中的每个核心类
  • pytorch深度学习—RNN-循环神经网络
  • 关于wpf的自适应