两数之和(哈希表 /unordered_map)
两数之和
http://www.nowcoder.com/questionTerminal/20ef0972485e41019e39543e8e895b7f
/* unordered_map<int, int> mp mp.find(val)!=mp.end() mp.count(val)!=0 */ class Solution { public: /** * * @param numbers int整型vector * @param target int整型 * @return int整型vector */ vector<int> twoSum(vector<int>& numbers, int target) { unordered_map<int,int> mp; for(int i=0;i<numbers.size();i++){ if(mp.find(numbers[i])!=mp.end()){ // 该互补数存在另一个数的位置 return {mp[numbers[i]]+1,i+1}; // return {a,b}自动返回vector类型 }else{ mp[target-numbers[i]]=i; // 在其互补的数上存放其位置 } } return {-1,-1}; } };