数据结构-哈希表

(该篇基本等价于up主视频:哈希表up主视频:集合的学习笔记记录)

基本概念

  • key-value对,key通过哈希函数映射为哈希值(内存地址),存储对应value
  • 同一个key一定会有相同的哈希值,但同一个哈希值不一定对应同一个key,对应多个key时说明发生了哈希冲突,这种情况可以再加链表存储来解决
  • 基本操作及其时间复杂度
    - 访问(通过索引获取):-(哈希表没有顺序)
    - 搜索(通过元素获取):O(1),冲突时O(K),K为冲突数
    - 插入:O(1),冲突时O(K),K为冲突数
    - 删除:O(1),冲突时O(K),K为冲突数
    (访问是指根据索引查询,搜索是指根据指根据值查询)
    • 优点
      • 用key查询快
    • 缺点:
      • 无序,存储空间使用不充分(待补充)
    • 应用场景:
      • 元素独立、查找性能要求高
  • 集合(局限于Hashset)可看成一组key

基本操作python实现

dict

#创建
hash_set=dict()

#添加1-1
hash_set[1]=1

#删除key=1的key-value
del hash_set[1]

#修改1-1为1-2
hash_set[1]=2

#搜索key=1的值
print(hash_set[1])

#检查key=1是否存在
1 in hash_set.keys()

#长度
len(hash_set)

#遍历
for key,value in hash_set.items():
	print(key,value)

set

#创建
hash_set=set()

#添加1
hash_set.add(1)

#删除1
hash_set.remove(1)

#检查1是否存在
1 in hash_set

#长度
len(hash_set)

#遍历
for key in hash_set:
	print(key)

题目

熟悉数据结构

217. 存在重复元素
389. 找不同
496. 下一个更大元素 I

熟悉数据结构+算法

这里例举一般遇到这种数据结构的题都有哪些解法,建议先看算法解题套路相关文章

(待补充)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值