哈希表

序属秋秋秋1 天前
数据结构·c++·stl·哈希算法·散列表·哈希表·哈希
《C++进阶之STL》【哈希表】往期《C++初阶》回顾:《C++初阶》目录导航往期《C++进阶》回顾: /------------ 继承多态 ------------/ 【普通类/模板类的继承 + 父类&子类的转换 + 继承的作用域 + 子类的默认成员函数】 【final + 继承与友元 + 继承与静态成员 + 继承模型 + 继承和组合】 【多态:概念 + 实现 + 拓展 + 原理】 /------------ STL ------------/ 【二叉搜索树】 【AVL树】 【红黑树】 【set/map 使用介绍】 【set/map
3Cloudream4 天前
算法·leetcode·字符串·双指针·滑动窗口·哈希表·中等
LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解一、文章标题LeetCode 003. 无重复字符的最长子串 - 滑动窗口与哈希表详解二、文章内容算法原理
1白天的黑夜15 天前
c++·leetcode·哈希表
哈希表-49.字母异位词分组-力扣(LeetCode)与其是一道算法题,这道题更像语法题将字符串排序即可创建一个<string,vector<string>>的哈希表,前一个string是排列好的string,后面的vector<string>中存储的是分好的字母异位词
1白天的黑夜112 天前
c++·leetcode·哈希表
哈希表-面试题01.02.判定是否互为字符重排-力扣(LeetCode)使用容器unordered_map显然过于笨重,我们可以注意到题目的字眼,小写字母,我们可以转而使用大小为26的数组模拟哈希表
KarrySmile12 天前
数据结构·链表·递归·哈希表·分治·hot100·灵茶山艾府
Day11--HOT100--25. K 个一组翻转链表,138. 随机链表的复制,148. 排序链表每日刷题系列。今天的题目是力扣HOT100题单。题目类型:链表。今天这几道都是比较难的题,先大胆跳过,回头再刷。
1白天的黑夜113 天前
c++·leetcode·哈希表
哈希表-1.两数之和-力扣(LeetCode)时光荏苒,博主也是再次来到leetcode的起点了,今天的我早已不是过去的我,回归正题接下来开始我们的算法之旅吧
Dovis(誓平步青云)20 天前
数据结构·散列表·哈希表
《C++哈希表:高效数据存储与检索的核心技术》前引:在计算机科学中,高效的数据管理是系统性能的关键。哈希表(Hash Table)作为一种经典的数据结构,以其惊人的查找、插入和删除效率而闻名,平均时间复杂度可达$O(1)$。它通过巧妙的哈希函数将键(key)映射到存储位置,实现近乎即时的访问,广泛应用于数据库索引、缓存系统和编程语言实现中。然而,哈希表也面临冲突处理、负载因子控制等挑战。本文将带您从基础原理出发,逐步解析哈希表的设计、实现和优化策略,并通过实例代码帮助您掌握这一强大工具。无论您是初学者还是经验开发者,本指南都将助您提升数据处理能力!
呼啦啦啦啦啦啦啦啦1 个月前
java·数据结构·哈希表
【Java】HashMap的详细介绍目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写HashCode方法?
珍珠是蚌的眼泪1 个月前
leetcode·哈希表·快乐数·字母异位词
LeetCode_哈希表1.总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。如果在做面试题目的时候遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法! 2.当数据量比较少时,可以考虑使用数组。直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。不要小瞧这个耗时,在数据量大的情况,差距是很明显的。
Dream it possible!1 个月前
c++·leetcode·面试·哈希表
LeetCode 面试经典 150_数组/字符串_O(1)时间插入、删除和获取随机元素(12_380_C++_中等)(哈希表)实现RandomizedSet 类:你必须实现类的所有函数,并满足每个函数的 平均 时间复杂度为 O(1) 。
junjunyi2 个月前
java·哈希表·双向链表
高效实现 LRU 缓存机制:双向链表与哈希表的结合题目: 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作
小新学习屋2 个月前
数据结构·leetcode·哈希表
《剑指offer》-数据结构篇-哈希表/数组/矩阵/字符串第一个只出现一次的字符数组中的重复的数字字符串流中第一个不重复的字符数组中只出现一次的数字调整数组顺序使奇数位于偶数前面
Tisfy2 个月前
算法·leetcode·散列表·题解·双指针·滑动窗口·哈希表
LeetCode 1695.删除子数组的最大得分:滑动窗口(哈希表)力扣题目链接:https://leetcode.cn/problems/maximum-erasure-value/
Alfred king2 个月前
链表·缓存·哈希表·lru·双向链表
面试150 LRU缓存这里我们使用collections中的OrderedDict去维护。因为它提供了一种有序的字典数据结构,它对比普通字典,OrderedDict会严格按照键值对的顺序插入顺序存储的书,即使在插入后修改已有的键,顺序也不会改变。并且它提供的over_to_end方法,可将指定键移动到字典的末尾(last=True)或开头(last=False),支持popitem(last=True)方法,按顺序弹出最后一个(last=True)或第一个(last=False)键值对
英雄哪里出来3 个月前
数据结构·算法·散列表·哈希表·解题报告
《哈希表》K倍区间(解题报告)题目链接:K倍区间计算子数组和能被k整除的子数组数量的算法。通过前缀和与哈希表的结合,高效地统计满足条件的子数组。   需要注意的是,题目要求求的是 k 的非负整数倍,而非整数倍,所以哈希表的值光存储次数是不够的,需要维护一个列表,在枚举到第 i 个元素的时候,在哈希表 hashset[ sum[i]%k ] 的所有列表元素中,统计小于等于 sum[i] 的元素个数进行累加,因为只有小于等于 sum[i] 的值才能保证是 非负整数 倍。
apocelipes4 个月前
数据结构·性能优化·golang·哈希表·hashtable
golang遍历处理map时的常见性能陷阱最近一直在重构优化老系统,所以性能优化相关的文章会比较多。这次的是有关循环处理map时的性能优化。预分配内存之类的大家都知道的就不多说了,今天来讲点大伙不知道的。
阳洞洞4 个月前
数据结构·链表·list·哈希表
138. Copy List with Random Pointer目录题目描述方法一、使用哈希表方法二、不使用哈希表问题的关键是,random指针指向的是原链表的结点,这个原链表的结点对应哪一个新链表的结点呢?有两种办法。一是用哈希表。另一种是复制原链表的每一个结点,并将新结点接在原结点的后面组成一个长度加倍的链表,这样原结点的直接后继就是该原结点对应的新结点。
Dream it possible!4 个月前
c++·leetcode·位运算·哈希表·哈希集合
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
卷卷的小趴菜学编程4 个月前
数据结构·算法·双指针·滑动窗口·哈希表·数组相关
算法篇-----滑动窗口所谓的滑动窗口,就是我们之前的双指针的一个扩展应用,在上一章中,我们的双指针是相向而行的,而这里的双指针是同向而行的,由于其移动过程中像一个窗口一样来回滑动,时大时小,而且还会来回动,因此我们给他起了一个名字:滑动窗口
猎猎长风5 个月前
数据结构·算法·哈希表
【数据结构和算法】6. 哈希表本文根据 数据结构和算法入门 视频记录哈希表以键值的方式来存储元素,也就是说每个数据都是以键值(key,value)的方式存储的,关键字(key)是不可重复的,而值是对应于键的。我们可以把哈希表简单理解为一本字典,每个键(key)是一个单词,而每个单词都有自己对应的解释,也就是值(value)。