暴力解法
class Solution {
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> result;
int N = nums.size();
for (int i = 0; i < N - 1; i++)
{
for (int j = i+1; j < N; j++)
{
if (nums[i] + nums[j] == target)
{
result.push_back(i);
result.push_back(j);
return result;
}
}
}
return result;
}
};
查找表解法,说明:key为数组值,value为索引
class Solution {
public:
vector<int> twoSum(vector<int> &nums, int target)
{
unordered_map<int,int> m;
int value;
for(int i = 0;i<nums.size();i++)
{
value = target-nums[i];
if(m.find(value)!= m.end())
return {m[value],i};
m[nums[i]] = i;
}
}
};