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