题目
代码
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> res;
std::map<int,int> table;
for(int i=0;i<nums.size();i++)
{
int remain=target-nums[i];
if(table.find(remain)!=table.end())
{
res.push_back(i);
res.push_back(table[remain]);
return res;
}
table[nums[i]]=i;
}
}
};
思路
循环遍历数组,当target-nums[i]的值在table中存在的话,则把两个的位置返回,否则把<nums[i],i>插入到table中。