利用哈希来解决问题

在力扣题解中,我们经常能够看到哈希的身影。今天,让我们一起来探寻哈希的算法思路吧。

目录

一.原理

二.解决问题

1.排序

2.数据间的对照检索

 三.优缺点


一.原理

通俗来说,哈希就是开辟一串空间,给他们分别定上不同的标记,然后把需解决的数据按对应标记放入指定的空间中。只需要检索空间内有无数据,就能依据空间标记来使用对应的数据。

比如有一串数字:3 5 1 6 0 4 2 7 1  3 8 8 1 0 5

最大为8,最小为0,我们可以开辟9个空间,将数据中对应的数字作为下标来寻找指定空间,找到的就让空间值加一。

首先初始化空间值都是0。

000000000
下标012345678

 

然后将数据作为下标进行检索对应空间,检索到的空间值加一。

以 3 为例,那么就是下标为 3 的空间值加一。

000100000
下标012345678

依次将所有数据检索。

231212112
下标012345678

二.解决问题

这样做出来的哈希表能够解决很多的问题。

1.排序

我们通过空间的值就可以清楚排序中有无该数据,该数据有多少。

比如上图中下标为0的空间值为2,就说明数值为0的数据一共有2个。

所以,对于排序而言,我们只需要对照空间值确定数量来依次打印下标即可。

2.数据间的对照检索

有些问题可能需要我们将数据互相对照检索。简单数据还好,如果一旦数据复杂或者对照起来非常麻烦,就极有可能会使问题解决起来异常艰难。这时,用哈希表来解决可能会大大降低解题难度。

这里我们用题来举例,具体思路小编已经为大家写好一篇博客:力扣题解-单词替换

 

如果哪里不明白可随时私信小编,我会尽全力为大家解答的。

当然,这里再为大家准备一道类似的题目:30. 串联所有单词的子串 - 力扣(LeetCode)

 具体的解题思路小编会在之后的博客中更新的。

 三.优缺点

哈希表最大的优点就是直观和快速

哈希的时间复杂度通常为O(n)

尤其对于排序来说,O(n)的时间复杂度是非常恐怖的。因为快排也只有O(n * log^n)。

但对应的,哈希最大的缺点是空间复杂度高。这取决于数据的范围大小。

所以,哈希是一种用空间来换时间的算法。


生命太短暂,不要去做一些根本没有人想要的东西。——Ash Maurya

如有错误,敬请斧正

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就要 宅在家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值