题解 | #两数之和#
两数之和
http://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f
public:
/**
*
* @param numbers int整型vector
* @param target int整型
* @return int整型vector
*/
vector<int> twoSum(vector<int>& numbers, int target) {
// write code here
int n = numbers.size();
vector<int> res;
if(!n) return res;
unordered_map<int, int> hasmap; //使用哈希表去保存
for(int i = 0; i < n; ++i){
if(hasmap.find(target - numbers[i]) != hasmap.end()){ //find函数返回值不是end
res.emplace_back(hasmap[target - numbers[i]] + 1); //在数组中保存
res.push_back(i + 1);
break;
}else{
hasmap[numbers[i]] = i; //将未找到的存入哈希表
}
}
return res;
}
};