class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hashtable;
//定义一个名为hashtable的哈希表<int型键,int型值,>
for (int i = 0; i < nums.size(); ++i) {
auto it = hashtable.find(target - nums[i]);
//auto就是根据变量值推断变量类型,it是iterator迭代器,访问、读写容器中的元素,需要使用迭代器iterator。hashtable.find()在表中寻找键为target-nums[i]的一项
if (it != hashtable.end()) {
//若键key与其值的键值对在容器中存在,则返回一个指向该键值对的正向迭代器,反之则返回一个指向容器中最后一个键值对之后位置的迭代器。此处判断表中是否有该键
return {it->second, i}; //it->first得到key, it->second得到value
}
hashtable[nums[i]] = i;
}
return {};
}
};
文中有地方借鉴于网络,仅供学习