两数之和

 

 

 

哈希表实现两数之和:用哈希表解决两数之和,我们可以锁定一个数,用目标值减去该数得到n,利用STL中map的count找到哈希表中是否有目标值减去该数得到的值,如果要实现这样的算法,我们需要用将key值保存为原始数组中对应的值,value保存为下标即可实现

注意的是相同的值不能重复使用,所以先判断是否有n,然后再去往哈希表中插入数据

 

代码如下:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> v;
        map<int,int> mp;
        for(int i = 0;i<nums.size();i++)
        {
            if(mp.count(target-nums[i])>0)
            {
            v.push_back(i);
            v.push_back(mp[target-nums[i]]);
            return v;
            }
            mp.insert(make_pair(nums[i],i));

        }
        return v;

    }
};

 

posted @ 2021-01-22 18:04  loliconsk  阅读(376)  评论(0)    收藏  举报