小工具知识网

当前位置: 首页 > 行业知识 > Leetcode刷题笔记--哈希表

行业知识

Leetcode刷题笔记--哈希表

2026-11-09 12:13:52 来源:互联网转载

系列文章目录


���示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

()

文章目录

  • 系列文章目录
  • 前言
  • 一、哈希表基础知识
    • 1.1 unordered_map
    • 1.2 unordered_set
    • 二、相关习题
      • 2.1 字母异位数相关习题
      • 2.2 unordered_set相关题目
      • 2.3 unordered_map相关题目
      • 总结

        前言

        提示:这里可以添加本文要记录的大概内容:

        一、哈希表基础知识

        在力扣习题当中,哈希表是非常常见的知识点。 哈希表通过哈希函数将键映射到索引位置,因此在理想情况下,查找和插入操作的时间复杂度为O(1)。这使得哈希表非常适合于需要快速检索的场景。 因此,在某些场景中有重要的作用。本文中主要介绍哈希表的两种常见形式:unordered_map和unordered_set,这也是做题中最常用的两种类型。

        ()

        1.1 unordered_map

        unordered_map是一个将key和value关联起来的容器,它可以高效的根据单个key值查找对应的value。key应该是唯一的,key和value的数据类型可以不相同。

        与 map 不同,unordered_map 不保证元素的顺序,而是通过哈希函数将键映射到桶(buckets),因此插入、删除和查找操作的平均时间复杂度都是常数时间 O(1)。适用于检索单个元素,效率很高。

        下面是unordered_map的C++基本用法。其中,最重要的是find函数。他用于查找key所在的元素。如果找到则返回指向对应键值对的迭代器,否则返回 end() 迭代器,表示未找到该键。

        //STL中map的基本用法#include void basic(){std::unordered_map myMap;// 添加键值对myMap["Alice"] = 25;myMap["Bob"] = 30;myMap["Charlie"] = 35;//删除键值对myMap.erase("Bob");// 检查键是否存在if (myMap.find("David") != myMap.end()) {std::cout std::cout     std::cout std::cout     std::unordered_map        if (std::isalpha(c)) { // 只统计字母            charCount[c]++;        }    }    // 输出结果    for (const auto& pair : charCount) {        std::cout unordered_setstd::cout std::cout std::cout std::cout std::cout std::cout std::cout     std::unordered_set        if (numSet.count(num)  0) {            return true; // 已存在重复元素        }        numSet.insert(num);    }    return false; // 未找到重复元素}unordered_setif (set.count(num)  0) {ans.push_back(num);set.erase(num);}}return ans;}unordered_maphashset[num]++;}for (auto num : nums2) {if (hashset[num]  0) {ans.push_back(num);hashset[num]--;}}return ans;}unordered_mapif (map[a]  0) map[a]--;else return false;}/*for (auto it = map.begin();it!=map.end();it++){if (it-second  0) return false;}*/return true;    }        int record[26] = {0};        for (int i = 0; i 

上一篇:轻松掌握!文件下载全攻略,一步步教你如何下载文件

下一篇:最新财付通收款教程,轻松掌握收款流程,快速便捷收款!