思路:遍历一边数组,每遇到一个先看看target - numbers[i]
在不在map里,在的话就返回结果,不在的话就把(numbers[i], i)
放入map中。
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> map; vector<int> vec; int len = numbers.size(); for(int i = 0; i < len; i++) { if(map.find(target - numbers[i]) != map.end()) { vec.push_back(map[target - numbers[i]] + 1); vec.push_back(i + 1); return vec; } map.insert(pair<int, int>(numbers[i], i)); } return vec; } };