File tree Expand file tree Collapse file tree 3 files changed +13
-2
lines changed Expand file tree Collapse file tree 3 files changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -77,7 +77,7 @@ class BinTree(object):
77
77
self .root = root
78
78
```
79
79
80
- 怎么构造上图中的二叉树呢,似乎其他课本没找到啥例子,我自己定义了一种方法,首先我们输入节点信息,仔细看下边代码,叶子节点的 left 和 right 都是 None,并且只有一个根节点 A:
80
+ 怎么构造上图中的二叉树呢,似乎其他课本没找到啥例子(有些例子是写了一堆嵌套节点来定义,很难搞清楚层次关系) ,我自己定义了一种方法,首先我们输入节点信息,仔细看下边代码,叶子节点的 left 和 right 都是 None,并且只有一个根节点 A:
81
81
82
82
``` py
83
83
node_list = [
@@ -94,7 +94,7 @@ node_list = [
94
94
]
95
95
```
96
96
97
- 然后我们给 BinTreeNode 定义一个 build_from 方法:
97
+ 然后我们给 BinTreeNode 定义一个 build_from 方法,当然你也可以定义一种自己的构造方法 :
98
98
99
99
``` py
100
100
class BinTree (object ):
Original file line number Diff line number Diff line change @@ -123,6 +123,7 @@ def test_heapsort_reverse():
123
123
124
124
# python 里的 heapq
125
125
python 其实自带了 heapq 模块,用来实现堆的相关操作,原理是类似的。请你阅读相关文档并使用内置的 heapq 模块完成堆排序。
126
+ 一般我们刷题或者写业务代码的时候,使用这个内置的 heapq 模块就够用了。
126
127
127
128
# 练习题
128
129
Original file line number Diff line number Diff line change 20
20
- 想不起来的函数名写伪代码,一般面试官不会强制说让你记住每个 api 的名字
21
21
- 如果有多余的时间(一般不会有)注意一些边界条件,防御性编程、代码风格、单元测试等东西,想好一些异常情况(空值、边界值等)的测试用例
22
22
23
+ # 手写代码注意事项
24
+
25
+ 这里我就直接引用《剑指offer》里内容,大家写代码的时候可以多加注意,对于应对算法面试,如果准备时间比较多,推荐看下这本书,并且刷一下
26
+ leetcode 上的基础题目练练手感。
27
+
28
+ - 规范性:书写清晰、布局清晰、命令合理
29
+ - 完整性:完成基本功能,考虑边界条件,做好错误处理
30
+ - 鲁棒性:防御式编程,处理无效输入
31
+
32
+
23
33
# 结语
24
34
这套教程列举的算法很有限,包括图算法、贪心,动态规划,分布式,机器学习算法等很多没有涉及到,因为它们确实需要读者更深入的理论基础,而且这套教程的目的也不是针对算法竞赛。
25
35
不过了解了本教程涉及到的大部分算法是可以应付绝大多数的业务开发的。如果读者对算法有兴趣,本教程引用的几本参考书都可以去深入学习。希望本教程能对你学习算法、养成良好的思维方式和编码习惯等有所帮助。
You can’t perform that action at this time.
0 commit comments