mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-21 15:57:14 +00:00
deploy
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
<link rel="prev" href="../about_the_book/">
|
||||
|
||||
|
||||
<link rel="next" href="../installation/">
|
||||
<link rel="next" href="../../chapter_introduction/algorithms_are_everywhere/">
|
||||
|
||||
<link rel="icon" href="../../assets/images/favicon.png">
|
||||
<meta name="generator" content="mkdocs-1.4.2, mkdocs-material-9.0.11">
|
||||
@@ -263,10 +263,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_1" id="__nav_1_label" tabindex="0">
|
||||
@@ -336,55 +332,35 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#021" class="md-nav__link">
|
||||
0.2.1. 行文风格约定
|
||||
0.2.1. 算法学习路线
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#022" class="md-nav__link">
|
||||
0.2.2. 在动画图解中高效学习
|
||||
0.2.2. 行文风格约定
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#023" class="md-nav__link">
|
||||
0.2.3. 在代码实践中加深理解
|
||||
0.2.3. 在动画图解中高效学习
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="0.2.3. 在代码实践中加深理解">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#1" class="md-nav__link">
|
||||
1) 安装编程环境
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#2" class="md-nav__link">
|
||||
2) 下载代码仓
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#3" class="md-nav__link">
|
||||
3) 运行源代码
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#024" class="md-nav__link">
|
||||
0.2.4. 在提问讨论中共同成长
|
||||
0.2.4. 在代码实践中加深理解
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#025" class="md-nav__link">
|
||||
0.2.5. 在提问讨论中共同成长
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -398,34 +374,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../installation/" class="md-nav__link">
|
||||
0.3. 编程环境安装
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../contribution/" class="md-nav__link">
|
||||
0.4. 一起参与创作
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -551,14 +499,14 @@
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
||||
2. 计算复杂度
|
||||
2. 复杂度分析
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_3">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
2. 计算复杂度
|
||||
2. 复杂度分析
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
@@ -1585,6 +1533,77 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<label class="md-nav__link" for="__nav_13" id="__nav_13_label" tabindex="0">
|
||||
12. 附录
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
</label>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_13">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
12. 附录
|
||||
</label>
|
||||
<ul class="md-nav__list" data-md-scrollfix>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_appendix/installation/" class="md-nav__link">
|
||||
12.1. 编程环境安装
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../../chapter_appendix/contribution/" class="md-nav__link">
|
||||
12.2. 一起参与创作
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--section md-nav__item--nested">
|
||||
|
||||
|
||||
|
||||
|
||||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_14" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1597,8 +1616,8 @@
|
||||
|
||||
</div>
|
||||
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_13_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_13">
|
||||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_14_label" aria-expanded="false">
|
||||
<label class="md-nav__title" for="__nav_14">
|
||||
<span class="md-nav__icon md-icon"></span>
|
||||
参考文献
|
||||
</label>
|
||||
@@ -1640,55 +1659,35 @@
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#021" class="md-nav__link">
|
||||
0.2.1. 行文风格约定
|
||||
0.2.1. 算法学习路线
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#022" class="md-nav__link">
|
||||
0.2.2. 在动画图解中高效学习
|
||||
0.2.2. 行文风格约定
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#023" class="md-nav__link">
|
||||
0.2.3. 在代码实践中加深理解
|
||||
0.2.3. 在动画图解中高效学习
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="0.2.3. 在代码实践中加深理解">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#1" class="md-nav__link">
|
||||
1) 安装编程环境
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#2" class="md-nav__link">
|
||||
2) 下载代码仓
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#3" class="md-nav__link">
|
||||
3) 运行源代码
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#024" class="md-nav__link">
|
||||
0.2.4. 在提问讨论中共同成长
|
||||
0.2.4. 在代码实践中加深理解
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#025" class="md-nav__link">
|
||||
0.2.5. 在提问讨论中共同成长
|
||||
</a>
|
||||
|
||||
</li>
|
||||
@@ -1718,8 +1717,19 @@
|
||||
|
||||
|
||||
<h1 id="02">0.2. 如何使用本书<a class="headerlink" href="#02" title="Permanent link">¶</a></h1>
|
||||
<p><strong>强烈建议通读本节内容,以获取最佳学习体验</strong>。</p>
|
||||
<h2 id="021">0.2.1. 行文风格约定<a class="headerlink" href="#021" title="Permanent link">¶</a></h2>
|
||||
<p>建议通读本节内容,以获取最佳阅读体验。</p>
|
||||
<h2 id="021">0.2.1. 算法学习路线<a class="headerlink" href="#021" title="Permanent link">¶</a></h2>
|
||||
<p>总体上看,我认为可将学习数据结构与算法的过程分为三个阶段。</p>
|
||||
<ol>
|
||||
<li><strong>算法入门</strong>。熟悉各种数据结构的特点、用法,学习各种算法的原理、流程、用途、效率等。</li>
|
||||
<li><strong>刷算法题</strong>。可以先从热门题单开刷,推荐<a href="https://leetcode.cn/problem-list/xb9nqhhg/">剑指 Offer</a>、<a href="https://leetcode.cn/problem-list/2cktkvj/">LeetCode Hot 100</a>,先积累至少 100 道题量,熟悉大多数的算法问题。刚开始刷题时,“遗忘”是最大的困扰点,但这是很正常的,请不要担心。学习中有一种概念叫“周期性回顾”,同一道题隔段时间做一次,在重复 3 轮以上后,往往就能牢记于心了。</li>
|
||||
<li><strong>搭建知识体系</strong>。在学习方面,可以阅读算法专栏文章、解题框架、算法教材,不断地丰富知识体系。在刷题方面,可以开始采用进阶刷题方案,例如按专题分类、一题多解、一解多题等,相关刷题心得可以在各个社区中找到。</li>
|
||||
</ol>
|
||||
<p>作为一本入门教程,<strong>本书内容主要对应“第一阶段”</strong>,致力于帮助你更高效地开展第二、三阶段的学习。</p>
|
||||
<p><img alt="算法学习路线" src="../suggestions.assets/learning_route.png" /></p>
|
||||
<p align="center"> Fig. 算法学习路线 </p>
|
||||
|
||||
<h2 id="022">0.2.2. 行文风格约定<a class="headerlink" href="#022" title="Permanent link">¶</a></h2>
|
||||
<p>标题后标注 <code>*</code> 的是选读章节,内容相对较难。如果你的时间有限,建议可以先跳过。</p>
|
||||
<p>文章中的重要名词会用 <code>「括号」</code> 标注,例如 <code>「数组 Array」</code> 。建议记住这些名词,包括英文翻译,以便后续阅读文献时使用。</p>
|
||||
<p>重点内容、总起句、总结句会被 <strong>加粗</strong> ,此类文字值得特别关注。</p>
|
||||
@@ -1837,38 +1847,34 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2 id="022">0.2.2. 在动画图解中高效学习<a class="headerlink" href="#022" title="Permanent link">¶</a></h2>
|
||||
<h2 id="023">0.2.3. 在动画图解中高效学习<a class="headerlink" href="#023" title="Permanent link">¶</a></h2>
|
||||
<p>视频和图片相比于文字的信息密度和结构化程度更高,更容易理解。在本书中,<strong>知识重难点会主要以动画、图解的形式呈现</strong>,而文字的作用则是作为动画和图的解释与补充。</p>
|
||||
<p>阅读本书时,若发现某段内容提供了动画或图解,<strong>建议你以图为主线</strong>,将文字内容(一般在图的上方)对齐到图中内容,综合来理解。</p>
|
||||
<p><img alt="动画图解示例" src="../suggestions.assets/animation.gif" /></p>
|
||||
<p align="center"> Fig. 动画图解示例 </p>
|
||||
|
||||
<h2 id="023">0.2.3. 在代码实践中加深理解<a class="headerlink" href="#023" title="Permanent link">¶</a></h2>
|
||||
<h2 id="024">0.2.4. 在代码实践中加深理解<a class="headerlink" href="#024" title="Permanent link">¶</a></h2>
|
||||
<p>本书的配套代码托管在<a href="https://github.com/krahets/hello-algo">GitHub 仓库</a>,<strong>源代码包含详细注释,配有测试样例,可以直接运行</strong>。</p>
|
||||
<ul>
|
||||
<li>若学习时间紧张,<strong>建议至少将所有代码通读并运行一遍</strong>。</li>
|
||||
<li>若时间允许,<strong>强烈建议对照着代码自己敲一遍</strong>。相比于读代码,写代码的过程往往能带来新的收获。</li>
|
||||
</ul>
|
||||
<h3 id="1">1) 安装编程环境<a class="headerlink" href="#1" title="Permanent link">¶</a></h3>
|
||||
<p>如果没有本地编程环境,可以参照<a href="https://www.hello-algo.com/chapter_preface/installation/">下节</a>。</p>
|
||||
<h3 id="2">2) 下载代码仓<a class="headerlink" href="#2" title="Permanent link">¶</a></h3>
|
||||
<p>如果已经安装 <a href="https://git-scm.com/downloads">Git</a> ,可以通过命令行来克隆代码仓。</p>
|
||||
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/krahets/hello-algo.git
|
||||
</code></pre></div>
|
||||
<p>当然,你也可以点击“Download ZIP”直接下载代码压缩包,解压即可。</p>
|
||||
<p><img alt="克隆仓库与下载代码" src="../suggestions.assets/download_code.png" /></p>
|
||||
<p align="center"> Fig. 克隆仓库与下载代码 </p>
|
||||
|
||||
<h3 id="3">3) 运行源代码<a class="headerlink" href="#3" title="Permanent link">¶</a></h3>
|
||||
<p>若代码块的顶部标有文件名称,则可在仓库 <code>codes</code> 文件夹中找到对应的 <strong>源代码文件</strong>。</p>
|
||||
<p><img alt="代码块与对应的源代码文件" src="../suggestions.assets/code_md_to_repo.png" /></p>
|
||||
<p align="center"> Fig. 代码块与对应的源代码文件 </p>
|
||||
|
||||
<p>源代码文件可以帮助你省去不必要的调试时间,将精力集中在学习内容上。</p>
|
||||
<p><img alt="运行代码示例" src="../suggestions.assets/running_code.gif" /></p>
|
||||
<p align="center"> Fig. 运行代码示例 </p>
|
||||
|
||||
<h2 id="024">0.2.4. 在提问讨论中共同成长<a class="headerlink" href="#024" title="Permanent link">¶</a></h2>
|
||||
<p><strong>第一步:安装本地编程环境</strong>。参照<a href="https://www.hello-algo.com/chapter_appendix/installation/">附录教程</a>,如果已有可直接跳过。</p>
|
||||
<p><strong>第二步:下载代码仓</strong>。如果已经安装 <a href="https://git-scm.com/downloads">Git</a> ,可以通过命令行来克隆代码仓。</p>
|
||||
<div class="highlight"><pre><span></span><code><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>git<span class="w"> </span>clone<span class="w"> </span>https://github.com/krahets/hello-algo.git
|
||||
</code></pre></div>
|
||||
<p>当然,你也可以点击“Download ZIP”直接下载代码压缩包,本地解压即可。</p>
|
||||
<p><img alt="克隆仓库与下载代码" src="../suggestions.assets/download_code.png" /></p>
|
||||
<p align="center"> Fig. 克隆仓库与下载代码 </p>
|
||||
|
||||
<p><strong>第三步:运行源代码</strong>。若代码块的顶部标有文件名称,则可在仓库 <code>codes</code> 文件夹中找到对应的 <strong>源代码文件</strong>。源代码文件可以帮助你省去不必要的调试时间,将精力集中在学习内容上。</p>
|
||||
<p><img alt="代码块与对应的源代码文件" src="../suggestions.assets/code_md_to_repo.png" /></p>
|
||||
<p align="center"> Fig. 代码块与对应的源代码文件 </p>
|
||||
|
||||
<h2 id="025">0.2.5. 在提问讨论中共同成长<a class="headerlink" href="#025" title="Permanent link">¶</a></h2>
|
||||
<p>阅读本书时,请不要“惯着”那些弄不明白的知识点。<strong>欢迎在评论区留下你的问题</strong>,小伙伴们和我都会给予解答,您一般 2 日内会得到回复。</p>
|
||||
<p>同时,也希望你可以多花时间逛逛评论区。一方面,可以看看大家遇到了什么问题,反过来查漏补缺,这往往可以引起更加深度的思考。另一方面,也希望你可以慷慨地解答小伙伴们的问题、分享自己的见解,大家互相学习与进步!</p>
|
||||
<p><img alt="评论区示例" src="../suggestions.assets/comment.gif" /></p>
|
||||
@@ -1966,13 +1972,13 @@
|
||||
|
||||
|
||||
|
||||
<a href="../installation/" class="md-footer__link md-footer__link--next" aria-label="下一页: 0.3. &nbsp; 编程环境安装" rel="next">
|
||||
<a href="../../chapter_introduction/algorithms_are_everywhere/" class="md-footer__link md-footer__link--next" aria-label="下一页: 1.1. &nbsp; 算法无处不在" rel="next">
|
||||
<div class="md-footer__title">
|
||||
<div class="md-ellipsis">
|
||||
<span class="md-footer__direction">
|
||||
下一页
|
||||
</span>
|
||||
0.3. 编程环境安装
|
||||
1.1. 算法无处不在
|
||||
</div>
|
||||
</div>
|
||||
<div class="md-footer__button md-icon">
|
||||
|
||||
Reference in New Issue
Block a user