力扣 哈希表刷题回顾

哈希表理论总结

什么时候用哈希表,快速判断一个元素是否出现在集合中时,用哈希这种空间换时间的方法。

哈希函数与哈希碰撞

哈希函数是指将key映射到对应的哈希表上

哈希碰撞是指映射的过程中容易出现多对一的情况,用什么方法解决拉链法和线性探测法


哈希表主要有

数组、set 、map三种

数组适用于给定数量的元素,并且数量不多,查找起来很方便,占用空间小

set 分为三种 set, unordered_set, muti_set

set 与muti_set底层都是红黑树,并且key有序,muti_set特殊在key可以重复,他们的查找和删除时间复杂度都是O(Log(n))

而unordered_set 底层是哈希表,key无序,key不可以重复,查找删除时间复杂度为O(1)


map也分三种,map ,unordered_map,muti_map

map是有key 与value的,key都不可以修改

map与muti_map 底层是红黑树,key有序,muti_map的key可以重复,查找删除效率为O(log(n))

unordered_map 底层哈希表,key无序,key不可以重复,时间复杂度为O(1)

map使用时

增加元素用map.insert(pair<类型,类型>{key,value})

key对应的value 变化,例如map[key]++

查找元素,if( map.find(key) != map.end() )等于true即为找到了


刷题时,

注意,定义unordered_map<类型1,类型2> set1; 类型1对应key的类型,类型2对应value的类型

key就是要查找的元素,value就是元素出现的次数

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值