1. 两数之和
算法
- 利用哈希表存储数组元素及其下标:
- 使用一个哈希表,键为数组元素值,值为对应的下标
- 哈希表可以快速查询某个元素是否已经出现过
- 遍历数组,寻找目标值对应的数:
- 在遍历数组时,对于当前元素
nums[i]
,计算另一个需要的数x = target - nums[i]
; - 在哈希表中检查是否存在
x
:- 如果
x
存在,说明找到了两个数,返回它们的下标 - 如果
x
不存在,将当前数nums[i]
及其索引存入哈希表,继续遍历
- 如果
- 在遍历数组时,对于当前元素
复杂度分析
时间复杂度
- 哈希表查询和插入:每次操作
O(1)
- 数组遍历:遍历一次数组,时间复杂度为
O(n)
- 总时间复杂度
O(n)
空间复杂度
- 需要一个哈希表存储数组中的元素及其索引,空间复杂度为
O(n)
C++ 代码
|
|
Python 代码
|
|
Go 代码
|
|
JavaScript 代码
|
|