2020-8-15 每日刷题札记–两数之和
利用unordered_map构造映射,直接存储target-nums[i] (也就是当前元素对应的互补),遍历nums[i]时,看nums[i]是否存在hash表中即可
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
unordered_map<int, int> hm;
for(int i = nums.size() - 1; i >= 0; --i)
{
auto iter = hm.find(nums[i]);
if(iter != hm.end())
return {
i, iter->second};
int diff = target - nums[i];
hm[diff] = i;
}
return {
};
}
};