哈希表总结篇:哈希表基础理论和常见题型

一、基础理论

  1. 基本原理

通过哈希函数(算法)数据结构中快速的找到目标元素。

  1. 三种常见的哈希结构(数据结构)
  • 数组:key——>索引
  • 集合(set):key——>value
  • 映射(map):pair:{key:value}…
  1. 哈希表的主要作用

快速查找(访问)其中的元素,判断哈希结构中是否有目标元素。

  1. 选对数据结构的重要性

在编写算法解决问题时,选用合适的数据结构可以使算法更高效。

二、数组作为哈希表

1.代表题目及其题解

  1. 有效的字母异位词
  2. 赎金信

2.使用数组做哈希表的关键点

  1. 数组天生有哈希表的特点:通过索引可以快速访问元素。
  2. 根据数组快速访问元素的特点,把key映射到相应的索引,便可以实现哈希表的主要功能。
  3. 数组要有明确的大小,且可以把key按规律映射到数组上。例如:‘a’——>0、‘b’——>1…
  4. 当题目中所要存储的元素没有明确大小时,应选用其他哈希结构。

三、集合作为哈希表

1.代表题目及其题解

  1. 两个数组的交集
  2. 快乐数

2.使用集合做哈希表的关键点

  1. 集合是已经实现好的哈希结构,直接使用集合快速查询判断有无目标元素即可。
  2. 集合中的unordered_set可以达成去重的效果。

四、映射作为哈希表

1.代表题目及其题解

  1. 两数之和
  2. 四数相加II

2.使用映射作为哈希表的关键点

  1. 映射以pair(key:value)的方式存储数据。
  2. 要根据题意确定好key和value分别存储什么。

五、其他

1.代表题目及其题解

  1. 三数之和
  2. 四数之和

2.解法

  1. 可以使用哈希表的特性来解决。(但不推荐)
  2. 更推荐使用双指针法,可以提高效率。

六、思维导图

哈希表总结

七、总结

  1. 我们常用哈希表来快速访问元素、快速判断是否包含目标元素。
  2. 哈希表有三类:array、set、map
  3. 三种哈希结构各有特点:array必须要求明确的大小、set不需要有明确大小、map以pair的形式存储数据。
  4. 我们应根据不同情况和三种哈希结构的特点选用最合适的哈希结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值