1月22号电话面试是两轮45分钟,当中有15分钟的休息。第一个是个美国人,问了我些project的经历,然后开始做题,题目分别是binary search tree和hash的差别,哪个好哪个不好,分别有什么优势,然后写code,第一题是写getHeight of a tree, 因为做过瞬间写完了。第二题判断一个binary tree是否是binary search tree. 一开始写的完全错误,只判断了一个node的左边是否比自己的值小,右儿子是否比自己的大。写完之后被他立马看出了两处错误1)没有判断left 和right是否是null 2)逻辑完全错误 后来马上想到应该把左边和右边的整个subtree的最大值和最小值拿出来,和当前的比较才可以(暴露出基本功严重不扎实)。后来他说每次这样有很多redundency,我说是的,因为每次都要搜索最大最小值,他问有什么办法,我就说可以记录下最大最小值,然后和root比较就可以,他表示比较满意。第二道题目因为时间比较久了怎么现在都回忆不起来.. (回忆起来了一定来加)
第二轮也是个美国人,问了一些tree的基本概念,然后就一直在问OOP的概念,然后要我举例子,我就说了汽车的那个oop的例子,然后他还问了很多官运composition的问题,以及哪个作为subclass, base class比较好,然后还有如果出现dimond shape的class关系,还不能multiple inheritence怎么办,我就说就可以用composition,然后他让我据一个例子,我就说truck class derived from vihacle class, and if it's a Ford truck, we have an object of class Ford in the class as a member variable. 他说不错。然后看时间有多就写了个code题目,题目是implement一个例如“3*4+5"的计算。我就用了stack,稍微处理了下*之类的。因为没有括号等等其他的带有priority的东西,所以test case很快就可以过,但是这样实现是不完美的,但他乐呵呵地表示可以了,我很无语= =! 后来和一google哥一讨论,果然被他鄙视了,他说高中就写过好多遍这个代码,并且要用优先级表,分两个stack
. Waral dи,
package听说今年有6700一个月外加relocation和租车,不知道具体怎样,明天recruiter才会打电话和我谈
祝大家找实习,FT好运!