算法复习|哈希表

用与快速确认一个元素是不是在该数据结构中

通过Hash function 建立映射,快速查找,查找的时间复杂度为O(1)

Python中有set集合,dict字典,等

哈希冲突的解决方案:1.拉链法,如果通过hash function计算后得到的index同为一个值,那么在数据量比较小的时候采用拉链法,即在该索引后面建立一个链表。2.线性探测法,将哈希表的大小设置成大于数据量,遇到哈希冲突后就将该数据放在第一个空位。

底层实现:红黑树,红黑树是一种平衡二叉搜索树

题目:

242.有效的字母异位词

力扣题目链接

思路:1.可以通过建立字典,然后比较两个字典是否相等完成此题

2.可以通过建立一个长度为26的数组,通过ord()-ord(‘a’)将字母映射到数组的某个位置,然后遍历该字符串记录每个字母出现的次数。然后再遍历另一个字符串,碰到一个字母便在数组中执行--操作,最后判断该数组中是否为全0,是的话就返回True,否则返回False

349. 两个数组的交集

力扣题目链接

思路:1:直接讲两个数组转化成集合然后求交集,最后在转换成list

2:将数组1和2分别转化成集合,然后申请一个数组,判断集合中的元素是否即存在数组1和2中,是的话就放进该数组。

1. 两数之和

思路:

建立一个字典,数组的索引为value,数组的值为key。

遍历该数组,如果target - nums[index]不在字典中,保存当前遍历的元素的索引和值,如果在字典中,直接返回[cache[target - nums[index]], index]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值