用map的时间复杂度为O(nlogn);
用hash的事件复杂度为O(n);
下面先给出map的方法
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> a;
map<int, int> mp;
for(int i = 0; i < nums.size(); i++)
mp[nums[i]] = i;
for(int i = 0; i < nums.size(); i++)
{
int key = target - nums[i];
if(mp.count(key) && mp[key] != i)
{
a.push_back(i);
a.push_back(mp[key]);
break;
}
}
//sort(a, a+a.size());
return a;
}
};