题解 | #两数之和#
两数之和
https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
#include <unordered_map>
class Solution {
public:
/**
*
* @param numbers int整型vector
* @param target int整型
* @return int整型vector
*/
vector<int> twoSum(vector<int>& numbers, int target) {
// write code here
vector<int> res;
unordered_map<int, int>hash;//建立一个哈希表
//在哈希表中查找target-numbers[i]
for(int i=0;i<numbers.size();i++)
{
int temp=target-numbers[i];
if(hash.find(temp)==hash.end())//没找到将信息计入哈希表
{
hash[numbers[i]]=i;//table_name[key]=value;
}
else {//找到的话将位序计入vector
res.push_back(hash[temp]+1);//temp的位序
res.push_back(i+1);//numbers[i]的位序
break;
}
}
return res;
}
};