亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【九月打卡】第1天 哈希表基礎

標簽:
算法

【九月打卡】第1天 哈希表基础

第一模块 课程信息

课程名称:《玩转数据结构》

https://coding.imooc.com/lesson/207.html#mid=15344

章节名称:14-1 哈希表基础

讲师姓名:liuyubobobo

第二模块 课程内容

Leetcode例题:387 字符串中的第一个不重复字符

https://leetcode.cn/problems/first-unique-character-in-a-string/

给定一个字符串,返回第一个不重复的字符。

思路就是扫描一遍,用哈希表(映射)计数每个字母出现的频率;

第二次扫描时发现第一个计数为1的字母即返回其index即可;

映射的范围只有a-z,则长度为26的数组即可解决。

问题背后:什么是哈希表

建立一种映射关系,后面就只需要O(1)的时间就可以完成查找。

两个核心问题:转化为索引——哈希函数

之后在哈希表上进行操作即可

较为复杂的问题比如设计身份证号码的哈希函数、字符串、日期、浮点数的哈希函数

难点在于如何保证每一个键都通过哈希函数转化为不同的索引

较为复杂的情况很容易出现哈希冲突(key不一样但是哈希值一样),哈希表操作的难点就是如何处理哈希冲突。

第三模块 学习收获心得与思考

哈希表体现了算法设计领域经典思想:空间换时间

预处理、多存储、缓存一些东西,完成的时候就要快很多

难点:空间也不是无限的,需要做取舍平衡(无限空间,O(1)复杂度完成;只有1的空间,退化为线性表,需要O(n)时间完成)

哈希表是时间和空间的平衡,哈希函数的设计也是非常重要的——哈希之后分布需要尽量均匀。

第四模块 学习完毕打卡截图

https://img1.sycdn.imooc.com//631ed2a80001ea8906050554.jpg


點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
軟件工程師
手記
粉絲
3
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消