![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode之哈希表篇
文章平均质量分 80
向着五星的方向
阿里云专家博主,华为云云享专家,专注于Java全栈,大数据方向,欢迎大家三连,有事可以私聊!
展开
-
刷题之Leetcode242题(超级详细)
直接使用set 不仅占用空间比数组大,而且速度要比数组慢,set把数值映射到key上都要做hash计算的。这道题用暴力的解法时间复杂度是O(n^2),那来看看使用哈希法进一步优化。那有兄弟可能问了,遇到哈希问题我直接都用set不就得了,用什么数组啊。输出结果中的每个元素一定是唯一的。所以就可以 使用数组来做哈希表了, 因为数组都是 1000以内的。而这道题目没有限制数值的大小,就无法使用数组来做哈希表了。不要小瞧这个耗时,在数据量大的情况,差距是很明显的。题意:给定两个数组,编写一个函数来计算它们的交集。原创 2024-04-28 09:11:21 · 366 阅读 · 0 评论 -
刷题之Leetcode242题(超级详细)
需要定义一个多大的数组呢,定一个数组叫做record,大小为26 就可以了,初始化为0,因为字符a到字符z的ASCII也是26个连续的数值。那看一下如何检查字符串t中是否出现了这些字符,同样在遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作。,而且这道题目中字符串只有小写字符,那么就可以定义一个数组,来记录字符串s里字符出现的次数。时间复杂度为O(n),空间上因为定义是的一个常量大小的辅助数组,所以空间复杂度为O(1)。这样就将字符串s中字符出现的次数,统计出来了。原创 2024-04-23 22:36:57 · 640 阅读 · 0 评论