1.题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
2.知识点
哈希表(散列表)的应用
C++中map的基本操作和用法
c++中map与unordered_map的区别
C++中set的用法
代码
class Solution
{
public:
vector<int> twoSum(vector<int> &nums, int target)
{
vector<int> v;
unordered_map<int, int> hash;
for (int i = nums.size() - 1; i >= 0; hash[nums[i]] = i, i--)
{
if (hash.find(target - nums[i]) == hash.end())
continue;
v.push_back(i);
v.push_back(hash[target - nums[i]]);
return v;
}
return v;
}
};