C++, unordered_map,简单省事。这里不用数组充当哈希表的原因是,遍历费时(O( ))。
class Solution {
public:
/**
*
* @param numbers int整型vector
* @param target int整型
* @return int整型vector
*/
vector<int> twoSum(vector<int>& numbers, int target) {
// write code here
unordered_map<int, int> Mymap;
unordered_map<int, int>::iterator it;
int i;
for (i = 0; i < (int)numbers.size(); i++) {
it = Mymap.find(target - numbers[i]);
if (it != Mymap.end())
break;
else
Mymap[numbers[i]] = i + 1;
}
return {it->second, i + 1};
}
};
京公网安备 11010502036488号