借助哈希表 将存储为<值:下标>类型
遍历数组:
如果 (target - 当前值)已在哈希表中,则返回对应的下标
否则,将当前值添加进哈希表
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> kv;
int n = nums.size();
for (int i = 0; i < n; ++i)
{
if (kv.find(target - nums[i]) != kv.end())
{
return {kv[target - nums[i]], i};
}
kv[nums[i]] = i;
}
return {0, 0};
}
};