该题最简单的做法是暴力穷举法,但是穷举法的算法复杂度是o(n^2),所以可以采用如下方法,利用哈希表的特性,
使算法复杂度降到o(n)
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
unordered_map<int,int> m;
vector<int> a;
for(int i = 0;i<nums.size()-1;i++)
{
m.insert(make_pair(nums[i],i));
}
for(int i = 0;i<nums.size()-1;i++)
{
int com = target-nums[i];
if((m.find(com)!=m.end())&&(m[com]!=i))
{
a.push_back(i);
a.push_back(m[com]);
return a;
}
else
{
continue;
}
}
return a;
}
};