代码随想录刷题学习日记

 仅为个人记录复盘学习历程,解题思路来自代码随想录

代码随想录刷题笔记总结网址:
代码随想录

哈希基础知识的学习摘要:

哈希表(散列表):通过索引实现对数据的快速访问

哈希函数作用:通过内容获取索引

哈希碰撞:不同数据匹配到了相同索引

哈希碰撞的解决:

拉链法:使用链表来存储数据,当发生哈希碰撞的时候在链表内进行查找

线性探测法:tableSize大于dataSize,依靠哈希表中的空位来解决碰撞问题

哈希表常用的三种数据结构:

数组,集合,

映射当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法

242.有效的字母异位词

字母异位词:给定字符串中所拥有字母字母都相同,但字母排序不同的字符串。

提供参数:string s,string t

主要操作:

创建一个容量为26的数组(题目假设全为小写字母,小写的26个字母asii码为连续值)

遍历第一个字符串s,出现字母的对应数组位置+1(a:0,z:25)

遍历第二个字符串t,出现字母的对应数组位置-1

遍历数组,若全为0则返回true,否则返回false

数组是一个简单的哈希表,这里使用数组,小写字母为key(通过映射转化为0-25),字幕出现次数为value

哈希表的关键在于通过索引快速访问指向的数据,这道题就是使用哈希表实现对数据的快速访问

349. 两个数组的交集

提供参数:数组nums1,数组nums2

主要操作:

创建一个用于给结果去重的集合result_set

创建一个集合set1用来存储nums1并去重

遍历nums2中的每个元素看是否存在于set1中,如果存在,加入result_set

解法上与242.有效的字母异位词中相似,只是本题中数组数据范围不限,使用数组容易造成数组空间的浪费,使用集合而不是数组的数据结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值