提交485后H1B回国# Immigration - 落地生根
z*4
1 楼
昨天下午的google intern电话面试,写出来给其他准备的人些信息。
两轮店面。
Round 1. 美国人,上来问abstract vs interface的区别。回答的内容忘说abstract只
能单继承,interface可以多implement的区别了,对方通过不通过方式问了几遍,我才
想起这个,感觉自己太二了。然后接着又问为什么java不让多继承,回答avoid dimond
-shaped inheritance。问完这些就是coding题。很简单,就是给一个文件,返回vowel
(就是原因aeiou)数量最多的行。还说不考虑大数据情况,就是一个普通file。于是
中规中矩写完代码。然后问client side怎么区分文件不存在和文件为空的情况,答可
以在文件不存在的情况下抛异常。对方又问为什么一开始写代码时候没抛异常,答写代
码时候考虑的是算法本身,抛异常这些都可以慢慢加。结束。
Round 2:美国人,比较nice。直接说45分钟的面试就做一套题,但是会慢慢深入,看
能写多深入。大概内容是设计一个cache。我写了一个HashTable的框架,用chaining处
理collision。注意hush function这个核心东西没写,对方也说这个可以不写。然后说
如果只允许table里面放1000个数据,怎么处理,答在put的时候如果超过可以抛异常。
然后问如果不跑异常,而是在发现超过的时候,删去一个数据,放新数据怎么处理。答
用LRU cache的思想。然后就实现这个cache,我用的java本身的LinkedList封装了一下
。然后对方让在Hash table的put和get,remove方法里加入这个LRU cache的逻辑。写
完这个时间也差不多了。就问了问设计的这个东西平均和最坏的时间和空间复杂度。结
束。
整体感觉和预想的简单很多,但越是简单越心里没底,因为不知道怎么答才能答出对方
想听的东西。目前为止HR还没有回复。心里感觉悬了。
两轮店面。
Round 1. 美国人,上来问abstract vs interface的区别。回答的内容忘说abstract只
能单继承,interface可以多implement的区别了,对方通过不通过方式问了几遍,我才
想起这个,感觉自己太二了。然后接着又问为什么java不让多继承,回答avoid dimond
-shaped inheritance。问完这些就是coding题。很简单,就是给一个文件,返回vowel
(就是原因aeiou)数量最多的行。还说不考虑大数据情况,就是一个普通file。于是
中规中矩写完代码。然后问client side怎么区分文件不存在和文件为空的情况,答可
以在文件不存在的情况下抛异常。对方又问为什么一开始写代码时候没抛异常,答写代
码时候考虑的是算法本身,抛异常这些都可以慢慢加。结束。
Round 2:美国人,比较nice。直接说45分钟的面试就做一套题,但是会慢慢深入,看
能写多深入。大概内容是设计一个cache。我写了一个HashTable的框架,用chaining处
理collision。注意hush function这个核心东西没写,对方也说这个可以不写。然后说
如果只允许table里面放1000个数据,怎么处理,答在put的时候如果超过可以抛异常。
然后问如果不跑异常,而是在发现超过的时候,删去一个数据,放新数据怎么处理。答
用LRU cache的思想。然后就实现这个cache,我用的java本身的LinkedList封装了一下
。然后对方让在Hash table的put和get,remove方法里加入这个LRU cache的逻辑。写
完这个时间也差不多了。就问了问设计的这个东西平均和最坏的时间和空间复杂度。结
束。
整体感觉和预想的简单很多,但越是简单越心里没底,因为不知道怎么答才能答出对方
想听的东西。目前为止HR还没有回复。心里感觉悬了。