算法--哈希表

哈希表利用空间换时间

当我们要快速判断一个元素是否出现在集合里的时候,就需要考虑哈希表。

哈希表一般会选择三种数据结构,分别是:数组、set(集合)、map(映射)。

数组就是简单的哈希表,但是其大小不能无限开辟

优先使用unordered_set(因为其查找和增删效率最优);若需要集合有序,则用set;若不仅要有序还可以重复,则用multiset。

map是key  value的数据结构,它对key有限制,对value没有限制。

 

有效的字母异位词

利用最简单的哈希表--数组进行对个数进行统计,所以要创建一个新数组,数组的下标值就是对应的ASCII码相对值

最后统计新数组中的值判断t是否是s的字母异位词。

 

补充java语法

因为是在堆中,所以new的时候jvm会自动给数组赋值。
1、int类型定义的数组,初始化默认是0

 

2、String类型定义的数组,默认值是null

 

3、char类型定义的数组,默认值是0对应的字符

 

4、double类型定义的数组,默认值是0.0

 

5、float类型定义的数组,默认值是0.0

 

6、boolean类型定义的数组,默认值是false

 

两个数组的交集(若哈希值比较少且特别分散、跨度非常大,则不能使用数组,否则会浪费较大的空间)----若题目表明不需要对数据进行排序,且数据不能重复,则用unordered_set

 

posted @   S_Coder  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示