哈希表c++两数之和
时间: 2024-01-28 21:09:32 浏览: 103
哈希表是一种常用的数据结构,可以用来快速查找和插入数据。在这个问题中,我们可以使用哈希表来解决两数之和的问题。
具体的解决方法是,我们遍历数组中的每个元素,将元素的值作为键,元素的索引作为值存入哈希表中。然后,对于每个元素,我们检查哈希表中是否存在目标值减去当前元素的补数。如果存在,则说明找到了符合条件的两个数,直接返回它们的索引即可。
下面是对应的C++代码实现:
```cpp
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); i++) {
auto it = map.find(target - nums[i]);
if (it != map.end()) {
return {it->second, i};
}
map[nums[i]] = i;
}
return {};
}
};
```
这个算法的时间复杂度是O(n),其中n是数组的长度,因为我们最多需要遍历数组一次,并且在哈希表中进行常数时间的查找和插入操作。
阅读全文