解法:
hashmap记录{key: num, value: index},查找key: target-num。利用hashmap查找O(1)的时间复杂度。
复杂度:
时间O(n),空间O(n)。
代码:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map <int, int> value_map;
vector<int> result(2,-1);
for(int i=0;i<nums.size();++i){
auto search = value_map.find(target-nums[i]);
value_map.insert(map<int,int>:: value_type(nums[i], i));
if(search != value_map.end()){
result = {search->second, i};
}
}
return result;
}
};