没有重复元素的情况下,用map做的
class Solution {
public:
map<int,int> mp;
vector<int> twoSum(vector<int> &numbers, int target) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
mp.clear();
for(int i=0;i<numbers.size();i++)
mp[numbers[i]]=i+1;
int i,j;
for(i=1;i<=numbers.size();i++){
int left=target-numbers[i-1];
if(mp.count(left)!=0){
j=mp[left];
break;
}
}
vector<int> tmp;
if(i>j){
int temp=i;
i=j;
j=temp;
}
tmp.push_back(i);
tmp.push_back(j);
return tmp;
}
};