![](https://i-blog.csdnimg.cn/blog_migrate/452834590c8caf5de103c1c147a0847a.png)
1.暴力双循环
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
vector<int> res;
if(n == 0) return res;
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; j++)
{
if(nums[i] + nums[j] == target)
{
res.push_back(i);
res.push_back(j);
return res;
}
}
return res;
}
};
2.哈希表
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int n = nums.size();
vector<int> res;
if(n == 0) return res;
unordered_map<int, int> hash;
// first:元素值
// second:下标
for(int i = 0; i < n; i++)
{
if(hash.count(target - nums[i]))
{
res.push_back(i);
res.push_back(hash[target - nums[i]]);
return res;
}
hash[nums[i]] = i;
}
return res;
}
};