1.两数之和
出错的地方
- leetcode中不能在if语句中return,要在函数的结尾return
- 本题要注意自身和自身相加之后等
target
的情况,先找target-num[i]
,如果没有再存num[i]
收获
- map、vector的使用
代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
map<int,int> mymap;
vector<int> ans;
if(nums.size() < 2)
{
ans.push_back(-1);
ans.push_back(-1);
return ans;
}
for(int i = 0;i<nums.size();i++)
{
if(mymap.count(target - nums[i]) == 1)
{
ans.push_back(i);
ans.push_back(mymap[target - nums[i]]);
break;
}
mymap[nums[i]] = i;
}
return ans;
}
};