0 9 0 6
哈希表的基本知识:
哈希表(Hash Table)又称散列表,是除顺序存储结构、链式存储结构和索引表存储结构之外的又一种存储结构。
哈希碰撞:解决办法
开放定址法:是一类以发生冲突的哈希地址为自变量,通过某种哈希冲突函数得到一个新的空闲的哈希地址的方法。
(1)线性探测法
从发生冲突的地址(设为d)开始,依次探测d 的下一个地址(当到达下标为m-1的哈希表表尾时,下一个探测的地址是表首地址0),直到找到一个空闲单元为止。
d0=H(key)
di=( di -1+1) % m(1≤i≤m-1)
(2)二次探测法
d0=H(key)
di=(d0±i2) % m(1≤i≤m-1)
其中,d0是发生冲突的地址,m是哈希表的长度。
leetCode 242
哈希思想
字典方式
leetCode 350
leetCode 349
0 9 0 9
使用哈希表的场景:
(1)统计频率:
哈希表常用于统计元素的出现频率。 例如:给定一个字符串,统计每个字符出现的次数。
使用哈希表可以高效地处理这个任务,时间复杂度为 O(n)。
(2)快速查找:
如果你需要频繁查找数据(如在数组中查找某个元素),使用哈希表可以避免线性扫描,显著提高查找效率。 例如:给定一个数组,判断其中某个元素是否存在。遍历数组的时间复杂度是 O(n),而哈希表可以将这个查找过程优化为 O(1)。
leetCode 202
leetCode 1
leetCode 454