diff --git a/docs/chapter_appendix/contribution.md b/docs/chapter_appendix/contribution.md index 218c4d318..788fbe272 100644 --- a/docs/chapter_appendix/contribution.md +++ b/docs/chapter_appendix/contribution.md @@ -30,7 +30,7 @@ ## Docker 部署 -你可以使用 Docker 来部署本项目。 +你可以使用 Docker 来部署本项目。稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。 ```shell git clone https://github.com/krahets/hello-algo.git @@ -38,8 +38,6 @@ cd hello-algo docker-compose up -d ``` -稍等片刻,即可使用浏览器打开 `http://localhost:8000` 访问本项目。 - 使用以下命令即可删除部署。 ```shell diff --git a/docs/chapter_data_structure/data_and_memory.md b/docs/chapter_data_structure/data_and_memory.md index c9cc3c63d..fe0aed49b 100644 --- a/docs/chapter_data_structure/data_and_memory.md +++ b/docs/chapter_data_structure/data_and_memory.md @@ -92,9 +92,9 @@ $$ | 指数位 E | 分数位 $\mathrm{N} = 0$ | 分数位 $\mathrm{N} \ne 0$ | 计算公式 | | ------------------ | ----------------------- | ---------------------------- | ------------------------------------------------------------ | -| $0$ | $\pm 0$ | 次正规数(subnormal number) | $(-1)^{\mathrm{S}} \times 2^{-126} \times (0.\mathrm{N})$ | -| $1, 2, \dots, 254$ | 正规数 | 正规数 | $(-1)^{\mathrm{S}} \times 2^{(\mathrm{E} -127)} \times (1.\mathrm{N})$ | -| $255$ | $\pm \infty$ | $\mathrm{NaN}$ | | +| $0$ | $\pm 0$ | 次正规数 | $(-1)^{\mathrm{S}} \times 2^{-126} \times (0.\mathrm{N})$ | +| $1, 2, \dots, 254$ | 正规数 | 正规数 | $(-1)^{\mathrm{S}} \times 2^{(\mathrm{E} -127)} \times (1.\mathrm{N})$ | +| $255$ | $\pm \infty$ | $\mathrm{NaN}$ | | 特别地,次正规数显著提升了小数精度: diff --git a/docs/chapter_hashing/summary.md b/docs/chapter_hashing/summary.md index cd61196cf..8af104211 100644 --- a/docs/chapter_hashing/summary.md +++ b/docs/chapter_hashing/summary.md @@ -6,6 +6,6 @@ - 两个不同的 key 经过哈希函数可能得到相同的桶索引,进而发生哈希冲突,导致查询错误。 - 缓解哈希冲突的途径有两种:哈希表扩容、优化哈希表的表示方式。 - 负载因子定义为哈希表中元素数量除以桶槽数量,体现哈希冲突的严重程度,常用作哈希表扩容的触发条件。与数组扩容的原理类似,哈希表扩容操作开销也很大。 -- 链式地址考虑将单个元素转化成一个链表,将所有冲突元素都存储在一个链表中,从而解决哈希冲突。而为了提升查询效率,可以把链表转化为 AVL 树或红黑树, +- 链式地址考虑将单个元素转化成一个链表,将所有冲突元素都存储在一个链表中,从而解决哈希冲突。链表过长会导致查询效率变低,可以通过把链表转化为 AVL 树或红黑树来解决。 - 开放寻址通过多次探测来解决哈希冲突。线性探测使用固定步长,缺点是不能删除元素且容易产生聚集。多次哈希使用多个哈希函数进行探测,相对线性探测不容易产生聚集,代价是多个哈希函数增加了计算量。 - 在工业界中,Java 的 HashMap 采用链式地址、Python 的 Dict 采用开放寻址。 diff --git a/docs/chapter_preface/about_the_book.md b/docs/chapter_preface/about_the_book.md index c01a17080..cc4f469dd 100644 --- a/docs/chapter_preface/about_the_book.md +++ b/docs/chapter_preface/about_the_book.md @@ -35,9 +35,9 @@ 本书的成书过程中,我获得了许多人的帮助,包括但不限于: - 感谢我的导师李博,在小酌畅谈时您告诉我“觉得应该做就去做”,坚定了我写这本书的决心。 -- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角为本书的写作提出了许多建议,使这本书更加适合算法初学者来阅读。 -- 感谢腾宝、琦宝、飞宝为本书起了个响当当的名字,好听又有梗,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。 -- 感谢苏潼为本书设计了封面和 LOGO ,我有些强迫症,前后多次修改,谢谢你的耐心。 +- 感谢我的女朋友泡泡担任本书的首位读者,从算法小白的视角提出了许多建议,使这本书更加适合初学者来阅读。 +- 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 "Hello World!" 的回忆。 +- 感谢苏潼为本书设计了封面和 LOGO ,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。 - 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 [Material-for-MkDocs](https://github.com/squidfunk/mkdocs-material/tree/master) 。 本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》很大影响,也在此向各位同学强烈推荐这本著作,包括[中文版](https://github.com/d2l-ai/d2l-zh)、[英文版](https://github.com/d2l-ai/d2l-en)、[李沐老师 bilibili 主页](https://space.bilibili.com/1567748478)。 diff --git a/docs/chapter_stack_and_queue/deque.md b/docs/chapter_stack_and_queue/deque.md index d12f4c021..81d43aba2 100644 --- a/docs/chapter_stack_and_queue/deque.md +++ b/docs/chapter_stack_and_queue/deque.md @@ -341,9 +341,7 @@ === "Go" ```go title="linkedlist_deque.go" - [class]{ListNode}-[func]{} - - [class]{LinkedListDeque}-[func]{} + [class]{linkedListDeque}-[func]{} ``` === "JavaScript" diff --git a/docs/index.md b/docs/index.md index e386b9a1d..50b1edc09 100644 --- a/docs/index.md +++ b/docs/index.md @@ -58,17 +58,15 @@ hide:

-近两年来,我在力扣上分享了一些题解和算法文章,回复了许多读者的评论问题,遇到最多的一类问题则是“如何入门学习算法”。我逐渐也对这个问题好奇了起来。 +两年前,我在力扣上分享了《剑指 Offer》系列题解,受到了很多小伙伴的喜爱与支持。在此期间,我也回复了许多读者的评论问题,遇到最多的问题是“如何入门学习算法”。我渐渐也对这个问题好奇了起来。 -两眼一抹黑地刷题应该是最受欢迎的方式。刷题就如同玩“扫雷”游戏一样,基础好的同学可以顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中渐渐退缩。通读教材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚重的书本也因此成为巨大的挑战。 +两眼一抹黑地刷题应该是最受欢迎的方式,简单粗暴且有效。然而,刷题就如同玩“扫雷”游戏,自学能力强的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在受挫中步步退缩。通读教材书籍也是常用方法,但对于面向求职的同学来说,毕业季、投递简历、应付笔面试已经占用大部分精力,厚重的书本也因此成为巨大的挑战。 -如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但可以带领你探索出算法知识的“地图”,让你了解不同“地雷”的形状大小和分布位置,并使你掌握各种“排雷方法”。 +如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 -本书提供可一键运行的源代码,已被翻译至 12 种编程语言,托管在 [github.com/krahets/hello-algo](https://github.com/krahets/hello-algo) 仓库。发行版 PDF 的更新周期较长,想看最新内容的小伙伴可以前往 [www.hello-algo.com](https://www.hello-algo.com/) 网页版。 +书中的代码均配有可一键运行的源文件,托管在 [github.com/krahets/hello-algo](https://github.com/krahets/hello-algo) 仓库,建议前往下载。发行版 PDF 的更新周期较长,想看最新内容的小伙伴可以前往 [www.hello-algo.com](https://www.hello-algo.com/) 网页版。 -希望这本书能够帮助你把知识的“雪球”滚起来,让你做到心中有数、不慌不忙。加油! - -### 作者简介 +

作者简介

靳宇栋 (Krahets),大厂高级算法工程师,上海交通大学硕士。力扣(LeetCode)全网阅读量最高博主,其 LeetBook《图解算法数据结构》已被订阅 22 万本。