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 个元素)。

相关推荐
颜酱1 小时前
栈的经典应用:从基础到进阶,解决LeetCode高频栈类问题
javascript·后端·算法
多恩Stone1 小时前
【C++入门扫盲1】C++ 与 Python:类型、编译器/解释器与 CPU 的关系
开发语言·c++·人工智能·python·算法·3d·aigc
生信大杂烩2 小时前
癌症中的“细胞邻域“:解码肿瘤微环境的空间密码 ——Nature Cancer 综述解读
人工智能·算法
蜡笔小马2 小时前
21.Boost.Geometry disjoint、distance、envelope、equals、expand和for_each算法接口详解
c++·算法·boost
m0_531237172 小时前
C语言-数组练习进阶
c语言·开发语言·算法
qq_454245032 小时前
基于组件与行为的树状节点系统
数据结构·c#
超级大福宝2 小时前
N皇后问题:经典回溯算法的一些分析
数据结构·c++·算法·leetcode
Wect3 小时前
LeetCode 530. 二叉搜索树的最小绝对差:两种解法详解(迭代+递归)
前端·算法·typescript
Rabbit_QL3 小时前
【BPE实战】从零实现 BPE 分词器:训练、编码与解码
python·算法·nlp