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 分钟前
Verilog中有符号数计算
图像处理·算法·fpga开发
6Hzlia5 分钟前
【Hot 100 刷题计划】 LeetCode 41. 缺失的第一个正数 | C++ 原地哈希题解
c++·leetcode·哈希算法
小肝一下33 分钟前
每日两道力扣,day6
数据结构·c++·算法·leetcode·双指针·hot100
ByteCraze33 分钟前
大四双非春招学习记录-K 个一组反转链表
数据结构·学习·链表
奶人五毛拉人一块38 分钟前
模板与vector的学习
数据结构·学习·迭代器·vector·模板
ambition2024239 分钟前
【算法详解】飞机降落问题:DFS剪枝解决调度问题
c语言·数据结构·c++·算法·深度优先·图搜索算法
I Promise3442 分钟前
C++ 基础数据结构与 STL 容器详解
开发语言·数据结构·c++
徒 花1 小时前
Python知识学习08
java·python·算法
chushiyunen1 小时前
milvus笔记、常用表结构
笔记·算法·milvus
liliangcsdn1 小时前
ChromaDB距离计算公式示例
人工智能·算法·机器学习