思路:遍历一边数组,每遇到一个先看看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;
}
};


京公网安备 11010502036488号