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}; } };