题目链接:两数之和
可以说是LeetCode上的abandon了,进站必做,解题思路:遍历一次数组,用map保存已遍历对象,每次保存对象前先check是否存在已保存对象与当前数字和为target。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
map<int, int> num_map;
vector<int> ret(2, -1);
for(int i = 0; i < nums.size(); ++i)
{
if(num_map.count(target - nums[i]))
{
ret[0] = num_map[target - nums[i]];
ret[1] = i;
break;
}
else
num_map[nums[i]] = i;
}
return ret;
}
};