pull/944/head
krahets 1 year ago
parent d13c40e11c
commit 8cf488bed2

@ -399,7 +399,7 @@ comments: true
!!! question "例题三"
在二叉树中搜索所有值为 $7$ 的节点,返回根节点到这些节点的路径,**路径中不能包含值为 $3$ 的节点**。
在二叉树中搜索所有值为 $7$ 的节点,返回根节点到这些节点的路径,**路径中不能包含值为 $3$ 的节点**。
**解题思路**:在例题二的基础上添加剪枝操作,当遇到值为 $3$ 的节点时,则终止继续搜索。

@ -43,7 +43,7 @@ comments: true
## 6.2.3.   开放寻址
「开放寻址」方法不引入额外的数据结构,而是通过“多次探测”来解决哈希冲突,**探测方主要包括线性探测、平方探测、多次哈希**。
「开放寻址」方法不引入额外的数据结构,而是通过“多次探测”来解决哈希冲突,**探测方主要包括线性探测、平方探测、多次哈希**。
### 线性探测

@ -46,6 +46,6 @@ comments: true
在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献!
本书倡导“手脑并用”的学习方法,在此方面深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本优秀著作,包括[中文版](https://github.com/d2l-ai/d2l-zh)、[英文版](https://github.com/d2l-ai/d2l-en)、[李沐老师 bilibili 主页](https://space.bilibili.com/1567748478)
本书倡导手脑并用的学习方式,在这一点上深受[《动手学深度学习》](https://github.com/d2l-ai/d2l-zh)的启发。在此向各位读者强烈推荐这本优秀著作
衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这些富有趣味的事。

@ -8,21 +8,7 @@ comments: true
为了获得最佳的阅读体验,建议您通读本节内容。
## 0.2.1.   算法学习路线
从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段:
1. **算法入门**。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效率等方面内容。
2. **刷算法题**。建议从热门题目开刷,如[剑指 Offer](https://leetcode.cn/problem-list/xb9nqhhg/)和[LeetCode Hot 100](https://leetcode.cn/problem-list/2cktkvj/),先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3-5 轮的重复后,就能将其牢记在心。
3. **搭建知识体系**。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心得可以在各个社区找到。
作为一本入门教程,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。
![算法学习路线](suggestions.assets/learning_route.png)
<p align="center"> Fig. 算法学习路线 </p>
## 0.2.2. &nbsp; 行文风格约定
## 0.2.1. &nbsp; 行文风格约定
标题后标注 `*` 的是选读章节,内容相对困难。如果你的时间有限,建议可以先跳过。
@ -162,7 +148,7 @@ comments: true
// 注释
```
## 0.2.3. &nbsp; 在动画图解中高效学习
## 0.2.2. &nbsp; 在动画图解中高效学习
相较于文字,视频和图片具有更高的信息密度和结构化程度,因此更易于理解。在本书中,**重点和难点知识将主要通过动画和图解形式展示**,而文字则作为动画和图片的解释与补充。
@ -172,7 +158,7 @@ comments: true
<p align="center"> Fig. 动画图解示例 </p>
## 0.2.4. &nbsp; 在代码实践中加深理解
## 0.2.3. &nbsp; 在代码实践中加深理解
本书的配套代码托管在[GitHub 仓库](https://github.com/krahets/hello-algo)**源代码包含详细注释,并附有测试样例,可直接运行**。
@ -202,7 +188,7 @@ git clone https://github.com/krahets/hello-algo.git
<p align="center"> Fig. 代码块与对应的源代码文件 </p>
## 0.2.5. &nbsp; 在提问讨论中共同成长
## 0.2.4. &nbsp; 在提问讨论中共同成长
阅读本书时,请不要“惯着”那些没学明白的知识点。**欢迎在评论区提出你的问题**,我和其他小伙伴们将竭诚为你解答,一般情况下可在两天内得到回复。
@ -211,3 +197,17 @@ git clone https://github.com/krahets/hello-algo.git
![评论区示例](../index.assets/comment.gif)
<p align="center"> Fig. 评论区示例 </p>
## 0.2.5. &nbsp; 算法学习路线
从总体上看,我们可以将学习数据结构与算法的过程划分为三个阶段:
1. **算法入门**。我们需要熟悉各种数据结构的特点和用法,学习不同算法的原理、流程、用途和效率等方面内容。
2. **刷算法题**。建议从热门题目开刷,如[剑指 Offer](https://leetcode.cn/problem-list/xb9nqhhg/)和[LeetCode Hot 100](https://leetcode.cn/problem-list/2cktkvj/),先积累至少 100 道题目,熟悉主流的算法问题。初次刷题时,“知识遗忘”可能是一个挑战,但请放心,这是很正常的。我们可以按照“艾宾浩斯遗忘曲线”来复习题目,通常在进行 3-5 轮的重复后,就能将其牢记在心。
3. **搭建知识体系**。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的刷题心得可以在各个社区找到。
作为一本入门教程,本书内容主要涵盖“第一阶段”,旨在帮助你更高效地展开第二和第三阶段的学习。
![算法学习路线](suggestions.assets/learning_route.png)
<p align="center"> Fig. 算法学习路线 </p>

@ -11,7 +11,7 @@
data-strict="1"
data-reactions-enabled="1"
data-emit-metadata="0"
data-input-position="bottom"
data-input-position="top"
data-theme="preferred_color_scheme"
data-lang="zh-CN"
crossorigin="anonymous"

Loading…
Cancel
Save