不用暴力求解,用O(n)的复杂度需要利用map。
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int > x(2);
int t;
unordered_map<int,int> nmap;
for(int i=0;i<nums.size();i++)
nmap[nums[i]] = i;
for(int i=0;i<nums.size();i++)
{
t=target-nums[i];
if(nmap.count(t)&&i!=nmap[t])
{
x[0]=i;
x[1]=nmap[t];
break;
}
}
return x;
}
};