
实现
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hash; for(int i = 0; i < nums.size(); i++) {auto it = hash.find(target - nums[i]);if(it != hash.end()) {return {it->second, i}; }hash[nums[i]] = i;}return {}; }
};
思路
1. 哈希表初始化
unordered_map<int, int> hash;
- 键(key):数组中的数字
- 值(value):该数字对应的索引
2. 遍历处理每个元素
for(int i = 0; i < nums.size(); i++) {auto it = hash.find(target - nums[i]);
}
3. 查找和返回逻辑
if(it != hash.end()) {return {it->second, i};
}
hash[nums[i]] = i;