news 2026/5/1 7:35:16

力扣 “两数之和” 最优解:哈希表 O (n) 时间复杂度实现详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣 “两数之和” 最优解:哈希表 O (n) 时间复杂度实现详解

大家好,今天来讲解力扣经典入门题「两数之和」,分享如何用哈希表实现时间复杂度 O (n) 的高效解法。

一、题目回顾

给定整数数组nums和目标值target,找出数组中和为 target 的两个整数,返回它们的下标。

  • 假设输入只有一个答案
  • 不能使用同一个元素两次
二、暴力解法的问题

最直观的思路是双重循环遍历数组(时间 O (n²)),但数据量大时效率很低。

三、哈希表优化解法(我的代码)

利用哈希表存储 “数值 - 下标”,遍历数组时直接查找target - 当前数是否存在,实现一次遍历完成查找:

class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map=new HashMap<>(); // 遍历数组 for(int i=0;i<nums.length;i++){ // 计算需要找的互补数 int complement = target - nums[i]; // 若互补数已在哈希表中,直接返回下标 if(map.containsKey(complement)){ return new int[]{map.get(complement),i}; } // 否则将当前数和下标存入哈希表 map.put(nums[i],i); } // 题目保证有解,这里仅为语法要求 return new int[0]; } }
四、代码逻辑拆解
  1. 初始化哈希表HashMap用来存已经遍历过的元素(键是数值,值是下标)。
  2. 遍历数组
    • 计算当前数的互补数complement = target - nums[i]
    • 检查哈希表中是否有这个互补数:
      • 有 → 直接返回 “互补数的下标” 和 “当前下标”。
      • 没有 → 把当前数和下标存入哈希表,继续遍历。
  3. 返回结果:题目保证有解,所以循环内一定会 return。
五、复杂度分析
  • 时间复杂度:O (n)(仅遍历一次数组,哈希表查找是 O (1))。
  • 空间复杂度:O (n)(最坏情况需要存储 n-1 个元素到哈希表)。

这个解法是「两数之和」的最优解之一,既简洁又高效,非常适合入门学习哈希表的应用~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:24:18

springboot+jspm高校考研自修室管理系统的设计与实现_g4fduxyz

目录已开发项目效果实现截图开发技术介绍系统开发工具&#xff1a;核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&…

作者头像 李华
网站建设 2026/5/1 3:14:27

机械手搬运工件:MCGS 7.7 与西门子 200 SMART PLC 以太网通讯实例

机械手搬运工件mcgs7.7和西门子200SMART型PLC以太网通讯例子带io表在自动化控制领域&#xff0c;实现上位机软件与 PLC 的稳定通讯是构建高效控制系统的关键。今天就来分享一个机械手搬运工件场景下&#xff0c;MCGS 7.7 和西门子 200 SMART 型 PLC 通过以太网通讯的例子&#…

作者头像 李华
网站建设 2026/4/30 14:52:53

基于 S7 - 1200 PLC 的高层建筑恒压供水控制系统探索

基于S7-1200 PLC高层建筑恒压供水控制系统 基于西门子PLC的恒压供水控制系统带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面在高层建筑的供水系统中&#xff0c;确保稳定且合适的水压对于居民的日常用水至关重要。基于西门子 S7 - 1200 PLC 的恒压供水…

作者头像 李华
网站建设 2026/4/25 13:51:13

天津这些3家可靠的店铺设计公司,竟藏着这些不为人知的亮点!

天津这些3家可靠的店铺设计公司&#xff0c;竟藏着这些不为人知的亮点&#xff01;在天津&#xff0c;店铺设计公司众多&#xff0c;要找到一家可靠且有亮点的公司并非易事。今天就为大家揭秘天津的3家可靠店铺设计公司&#xff0c;其中特别要提到的是EICO生活经&#xff0c;看…

作者头像 李华
网站建设 2026/5/1 6:57:51

Flutter OpenHarmony 运动App睡眠监测组件开发

前言 睡眠质量是影响运动表现和身体恢复的关键因素。一个完善的运动健康应用不仅要记录运动数据&#xff0c;还应该帮助用户了解和改善睡眠状况。本文将详细介绍如何在Flutter与OpenHarmony平台上实现一个专业的睡眠监测组件&#xff0c;包括睡眠时长记录、睡眠阶段分析、睡眠质…

作者头像 李华