Skip to content

Commit 30e9e6e

Browse files
committed
Deployed c22e528 with MkDocs version: 0.17.3
1 parent cdb4281 commit 30e9e6e

File tree

5 files changed

+54
-26
lines changed

5 files changed

+54
-26
lines changed

07_哈希表/hashtable/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@
110110
<li class="toctree-l2"><a href="#rehashing">重哈希(Rehashing)</a></li>
111111

112112

113-
<li class="toctree-l2"><a href="#hashtalbe-adt">HashTalbe ADT</a></li>
113+
<li class="toctree-l2"><a href="#hashtable-adt">HashTable ADT</a></li>
114114

115115

116116
<li class="toctree-l2"><a href="#_4">思考题</a></li>
@@ -333,7 +333,7 @@ <h1 id="rehashing">重哈希(Rehashing)</h1>
333333
<p>当负载因子超过 0.8 的时候,需要进行 rehashing 操作了。步骤就是重新开辟一块新的空间,开多大呢?感兴趣的话可以看下 cpython 的 dictobject.c 文件然后搜索
334334
GROWTH_RATE 这个关键字,你会发现不同版本的 cpython 使用了不同的策略。python3.3 的策略是扩大为已经使用的槽数目的两倍。开辟了新空间以后,会把原来哈希表里
335335
不为空槽的数据重新插入到新的哈希表里,插入方式和之前一样。这就是 rehashing 操作。</p>
336-
<h1 id="hashtalbe-adt">HashTalbe ADT</h1>
336+
<h1 id="hashtable-adt">HashTable ADT</h1>
337337
<p>实践是检验真理的唯一标准,这里我们来实现一个简化版的哈希表 ADT,主要是为了让你更好地了解它的工作原理,有了它,后边实现起 dict 和 set 来就小菜一碟了。
338338
这里我们使用到了定长数组,还记得我们在数组和列表章节里实现的 Array 吧,这里要用上了。</p>
339339
<p>解决冲突我们使用二次探查法。我们来实现三个哈希表最常用的基本操作,这实际上也是使用字典的时候最常用的操作。</p>

19_python内置常用算法和数据结构/builtins/index.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,6 @@
169169
<li class="toctree-l2"><a href="#python">Python 常用内置算法和数据结构</a></li>
170170

171171

172-
<li class="toctree-l2"><a href="#_1">结语</a></li>
173-
174-
175172
</ul>
176173
</li>
177174

@@ -218,13 +215,11 @@ <h1 id="python">Python 常用内置算法和数据结构</h1>
218215
因为在性能和容错性方面内置模块要好于我们自己实现(比如有些是 c 实现的)。本章我们不会再对每个模块的原理详细说明,仅列举出一些常见模块供大家参考,
219216
如果有需要最好的学习方式就是参考 Python 的官方文档。很多高级的数据结构我们也可以通过 google 搜索现成的库拿来直接用。</p>
220217
<ul>
218+
<li>常用内置数据类型:list, tuple, dict, set, frozenset</li>
221219
<li>collections</li>
222220
<li>heapq</li>
223221
<li>bisect</li>
224222
</ul>
225-
<h1 id="_1">结语</h1>
226-
<p>这套教程列举的算法很有限,包括图算法、贪心,动态规划,机器学习算法等很多没有涉及到,因为它们确实需要读者更深入的理论基础,而且这套教程的目的也不是针对算法竞赛。
227-
不过了解了本教程涉及到的大部分算法是可以应付绝大多数的业务开发的。如果读者对算法有兴趣,本教程引用的几本参考书都可以去深入学习。希望本教程能对你学习算法、养成良好的思维方式和编码习惯等有所帮助。</p>
228223

229224
</div>
230225
</div>

20_面试指南/interview/index.html

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,16 @@
171171
<a class="current" href="./">20_面试指南</a>
172172
<ul class="subnav">
173173

174-
<li class="toctree-l2"><a href="#_1">白板编程</a></li>
174+
<li class="toctree-l2"><a href="#_1">注意事项</a></li>
175175

176176

177-
<li class="toctree-l2"><a href="#_2">结语</a></li>
177+
<li class="toctree-l2"><a href="#_2">白板编程</a></li>
178+
179+
180+
<li class="toctree-l2"><a href="#_3">结语</a></li>
181+
182+
183+
<li class="toctree-l2"><a href="#_4">延伸阅读</a></li>
178184

179185

180186
</ul>
@@ -212,11 +218,33 @@
212218
<div role="main">
213219
<div class="section">
214220

215-
<h1 id="_1">白板编程</h1>
221+
<h1 id="_1">注意事项</h1>
222+
<ul>
223+
<li>电子简历尽量用 pdf 格式,方便跨平台打开。doc 等格式在不同的电脑上打开会有排版问题,很多后端技术面试官可能使用的是 mac 或者 linux。</li>
224+
<li>提前复习回顾重点知识,防止卡在基础上。比如 mac 下著名的 brew 工具作者面试 google 就因为没写出来反转二叉树被拒,后来去了苹果😂.(这就只能看人品和运气和眼缘了,如果没见到二面面试官或者 hr,大概率是挂了)。(树、链表、哈希表、二分、快排、TCP/UDP、HTTP、数据库ACID、索引优化等常考点)。</li>
225+
<li>白板编程,练习在纸上手写代码。虽然很多求职者都很抵触手写代码,但是白板编程确实是一种比较好的区分方式。你的思考过程、编码习惯、编码规范等都能看出来。</li>
226+
<li>如果被问到工程里不会使用但是比较刁钻的算法题,建议你和面试官沟通的时候问问这个算法或者题目在开发中有哪些实际使用场景,看看对方怎么说😎。</li>
227+
<li>面试的时候准备充分,简历要与招聘方需求对等,甚至可以针对不同公司准备不同的简历内容。笔者每次面试都会带上白纸、笔、简历、电脑等,即使面试没过,至少也让面试官感觉我是有诚意的,给对方留下好印象。</li>
228+
<li>加分项:github、个人技术博客、开源项目、技术论坛帐号等,让面试官有更多渠道了解你,有时候仅仅根据几十分钟的面试来评判面试者是有失偏颇的。(比如面试者临场发挥不好;面试官个人偏好;会的都不问,问的都不会等)</li>
229+
</ul>
230+
<h1 id="_2">白板编程</h1>
216231
<p>其实我个人是反对出纯算法题目的,尤其是有些比较刁钻的直接出算法竞赛题,这对与很多做工程的同学来说是比较吃亏的。</p>
217-
<h1 id="_2">结语</h1>
232+
<ul>
233+
<li>练习手写常见的算法,比如快排,二分,归并等,记住常见排序算法时间复杂度</li>
234+
<li>逻辑正确是前提</li>
235+
<li>有图示描述思路最好,如果时间紧代码没写出来,可以直接描述自己的思路。</li>
236+
<li>字不要写太大,尽量工整。每行代码之间留有一定的空隙,方便你修改</li>
237+
<li>如果实在写不出来可以和面试官交流,很多时候如果给不出最优方案尽量想一个次优方案,别上来就说不会</li>
238+
<li>想不起来的函数名写伪代码,一般面试官不会强制说让你记住每个 api 的名字</li>
239+
<li>如果有多余的时间(一般不会有)注意一些边界条件,防御性编程、代码风格、单元测试等东西</li>
240+
</ul>
241+
<h1 id="_3">结语</h1>
218242
<p>这套教程列举的算法很有限,包括图算法、贪心,动态规划,机器学习算法等很多没有涉及到,因为它们确实需要读者更深入的理论基础,而且这套教程的目的也不是针对算法竞赛。
219243
不过了解了本教程涉及到的大部分算法是可以应付绝大多数的业务开发的。如果读者对算法有兴趣,本教程引用的几本参考书都可以去深入学习。希望本教程能对你学习算法、养成良好的思维方式和编码习惯等有所帮助。</p>
244+
<h1 id="_4">延伸阅读</h1>
245+
<ul>
246+
<li><a href="https://zhuanlan.zhihu.com/p/35175401">那些年,我们一起跪过的算法题[视频]</a></li>
247+
</ul>
220248

221249
</div>
222250
</div>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -479,5 +479,5 @@ <h2 id="_19">本电子书制作和写作方式</h2>
479479

480480
<!--
481481
MkDocs version : 0.17.3
482-
Build Date UTC : 2018-05-09 00:44:23
482+
Build Date UTC : 2018-05-09 12:46:23
483483
-->

0 commit comments

Comments
 (0)