Day1:基础入门·两数之和(LeetCode 1)

题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

注意:你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。

示例:输入:nums = [2,7,11,15], target = 9 → 输出:[0,1](解释:因为 nums[0] + nums[1] = 2 + 7 = 9)

解题思路

核心思路:利用哈希表(HashMap)的查询优势,减少时间复杂度。

  1. 遍历数组,对于每个元素 nums[i],计算其补数(target - nums[i]);

  2. 检查哈希表中是否存在该补数:若存在,直接返回补数的下标和当前下标 i;若不存在,将当前元素 nums[i] 和其下标 i 存入哈希表;

  3. 遍历结束后,必能找到唯一答案(题目保证每种输入对应一个答案)。

复杂度分析:时间复杂度 O(n)(仅遍历一次数组),空间复杂度 O(n)(哈希表最多存储 n 个元素)。

相关推荐
程序员小崔日记10 小时前
一道基础计算题卡在 40 分,求助判题规则问题
java·算法·竞赛
愣头不青10 小时前
543.二叉树的直径
java·算法
此方ls10 小时前
机器学习聚类算法二——DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
算法·机器学习·聚类
add45a10 小时前
C++中的原型模式
开发语言·c++·算法
2401_8442213210 小时前
C++类型推导(auto/decltype)
开发语言·c++·算法
2201_7538777910 小时前
高性能计算中的C++优化
开发语言·c++·算法
hans汉斯10 小时前
基于区块链和语义增强的科研诚信智能管控平台
人工智能·算法·yolo·数据挖掘·区块链·汉斯出版社
2501_9454251510 小时前
分布式系统容错设计
开发语言·c++·算法
冷小鱼10 小时前
机器学习极简入门:从外卖预测到AI核心算法
人工智能·算法·机器学习
2401_8845632410 小时前
C++代码重构实战
开发语言·c++·算法