2020-8-15 每日刷题札记–两数之和

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 {
    
    };
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_45336082/article/details/108029974