第一版:
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> res;
map<int, int> myMap;
for (int i = 0; i < nums.size(); i++)
{
if (myMap.find(target - nums[i]) != myMap.end())
{
res.push_back(i);
res.push_back(myMap[target - nums[i]]);
return res;
}
else
{
myMap.insert({nums[i], i});
}
}
return res;
}
};
第二版:
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
unordered_map<int, int> myMap;
for (int i = 0; i < nums.size(); i++)
{
if (myMap.find(target - nums[i]) != myMap.end())
{
return {myMap[target - nums[i]], i};
}
else
{
myMap.insert({nums[i], i});
}
}
return {0, 0};
}
};