美文网首页
算法学习(查找表相关的问题)

算法学习(查找表相关的问题)

作者: SEU小翔哥 | 来源:发表于2021-12-22 11:42 被阅读0次

    set 和 map 常见操作
    insert, find, erase, change(map),count
    set:
    record.find(x) != record.end() //查看set里面有没有x这个元素
    res_set.insert(x) // 在set中插入x这个值
    unordered_set<int> record(nums1.begin(), nums1.end()) //将vector的值赋值给set
    vector<int> res_vector(res_set.begin(),res_set.end()) //将set的值赋值给vector
    map:
    record.count(x) //判断record哈希表中有没有x

    LeetCode 349 两个数组的交集,方法:set的使用

    image.png

    LeetCode 350 两个数组的交集II, 方法:map的使用

    image.png

    LeetCode 242 有效的字母异位词(练习),完成,方法:hash_map

    image.png

    LeetCode 202 快乐数(练习), 完成,方法:用哈希集合检测循环

    image.png

    LeetCode 290 单词规律(练习), 完成,方法:双哈希表

    image.png

    LeetCode 205 同构字符串(练习), 完成, 方法:双哈希表

    image.png

    LeetCode 451 根据字符出现频率排序(练习), 完成,方法:哈希表+对含pair的vector排序

    sort(vec.begin(), vec.end(), [](const pair<char,int> &a, const pair<char,int> &b){return a.second > b.second;});

    image.png

    LeetCode 1 两数之和,方法哈希map

    image.png

    LeetCode 15 三数之和(练习),完成,方法:双指针。hash表效率很低

    image.png

    LeetCode 18 四数之和(练习),完成,方法:双指针

    image.png

    LeetCode 16 最接近三数之和(练习)完成,方法:双指针。

    image.png

    LeetCode 454 四数相加

    image.png

    LeetCode 49 字母异位词分组(练习),完成,方法:哈希表

        vector<vector<string>> res;
        unordered_map<string,vector<string>> record;
        for(auto it = record.begin(); it != record.end(); ++it){
            res.push_back(it->second);
        }
    
    image.png

    LeetCode 447 回旋镖的数量

    image.png

    LeetCode 149 直线上最多的点数(练习)

    image.png

    LeetCode 219 存在重复元素, 方法:滑动窗口+set查找

    image.png

    LeetCode 217 存在重复元素(练习)

    image.png

    LeetCode 220 存在重复元素III, 方法:使用record.lower_bound()

    image.png

    相关文章

      网友评论

          本文标题:算法学习(查找表相关的问题)

          本文链接:https://www.haomeiwen.com/subject/xerqqrtx.html