class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
//用一个map<int,int>保存<数,下标>
//对于每个nums[i],在map里找有没有和他加起来等于target的数
//并且要是下标大于i的数,因为不能重复用同一个数
vector<int> res;
map<int,int> m;
for(int i =0;i<nums.size();++i)
{
m[nums[i]] = i;
}
for(int i = 0;i<nums.size();++i)
{
const int t = target - nums[i];
if(m.find(t) != m.end() && m[t]>i)
{
res.push_back(i);
res.push_back(m[t]);
break;
}
}
return res;
}
};