Friday, January 18, 2019

EPI online zoom session 面试算法基础知识直播分享

各位有兴趣做面试算法解题的朋友,

突击九章算法班半年以后, 未来两个月我打算仔细学习 Elements of Programming Interviews in Python, ( EPI ), 夯实基础知识.


为了督促自己保持合理进度, 咱每周都会有两三次学习心得分享, zoom 视频直播, 欢迎报名.
一般直播时间是每天加西时间 7:20pm PST. 美东时间 10:20pm, 北京时间 10:20am.


报名请 email 到我的邮箱: good.goodwish@gmail.com

contents 内容主体框架: (内容在不断完善当中)

I Data Structures and Algorithms 

1 Primitive Types
1.1 Computing the parity of a word 

2 Arrays
2.1 The Dutch national flag problem

3 Strings
4 Linked Lists
5 Stacks and Queues
6 Binary Trees
7 Heaps
8 Searching
10 Sorting
11 Binary Search Trees
12 Recursion
13 Dynamic Programming
14 Greedy Algorithms and Invariants
15 Graphs
16 Parallel Computing 

II Domain Specific Problems 

17 Design Problems
17.1 Design a system for detecting copyright infringement

18 Language Questions
18.1 Closure
18.2 Shallow and deep copy

19 Object-Oriented Design
20 Common Tools
III The Honors Class

21 Honors Class
21.2 Compute the maximum product of all entries but one
....

Friday, January 04, 2019

Symmetric Tree 解题分析和体验


昨天晚上讲一个 linkedin 的 easy 题, Symmetric Tree.

有 4 种解法。 入门学习和复习不错。

谢谢各位来捧场,运气好,代码一遍通过。 

谢谢坛主和同学们的鼓励。咱新年做简单题,就是找找自信。哈哈哈。

延续前两天知乎的帖子,说到我,理解力和抽象能力差,记忆力也差。
只能靠毅力,依靠咱们这个社区,互相加油督促,帮助前进。


我自己挺喜欢顿悟的,每次突然打通一个环节,都要高兴一阵子。
看了帖子,才知道 顿悟等于理解力差和抽象能力差。 汗颜 😅

我用自己的土办法递归和循环两种方法(global stack 存储所有节点值),做完此题以后,偶尔看到 Gavin Fish 的思路。先是惊喜,然后是感到惭愧。

惊喜我一看到 function definition, 就顿悟了,打通任督二脉,后面的代码都不需要看了。 
(不过, 顿悟 = 理解力和抽象能力差,嘿嘿 )
函数定义 是 令狐冲老师说的递归三要素,能够定义好 function type (input, output) 还真是特别重要。

惭愧的是 Gavin Fish 的代码量只有咱的三分之一,真是简洁。我就喜欢简洁明了的代码。
我判断了那么多边界条件,人家两行代码就全部解决了。
简明的代码,容易理解,还容易测试,不易出错。

抽象能力太重要了,能够把各种边界条件归类并用简明的代码处理,就是一种抽象能力。

另外, 视频座谈的时候,我个人喜欢观众语音发言提问,多多交互。
好比说相声,有人递话和提问,故事才容易自然发展下去。


同学们的评论:


  • 赞多思路总结 把树类型的各个常用解法都用了一遍 非常棒的练习方式.
  • 题目做透,举一反三.
  • 每一道题其实一体多解是很好的方法复习之前的知识点.
  • 我还一个建议,说完算法之后报时间和空间复杂度,这样可以尽快和面试官确认是否是他们理想的复杂度值.

参考: