下面是我的onsite 题目。以及自己的总结。 一共五轮,每轮45分钟,没两轮之间没有break,但是你可以花上3minute左右喝点水和去卫生间。 第一轮:(烙印) hiring manager面试的,也是我以后mobile team的manager。没有coding。对着我的简历,一个项目一个项目的去问。 每个技术细节问的很深,比如细到这个请求网络的服务是用什么Framework类来实现了,这个Framework类比着别的Framework类有什么优点? 另外,他对我的一个多媒体播放的一个项目特别感兴趣。问了好到技术细节,以及其中的一个我们设计的很关键的算法。我给他这whiteboard上面画图详细的描述我们当初设计的这个算法。结果这个面试官一眼找出了我们设计的一个漏洞。我告诉他这个问题我至今还没有解决,他也没有继续追问下去。 第二轮:一个年轻的印度三哥。 这货上来也没有寒暄,也没有微笑,直接说题目。我当时也挺紧张的,感觉这货要挂我。 他的英语我也没有听的很懂。我反复给说他pardon 和Do you mean by ....? 无数次之后才弄明白他的题目意思。 他的题目的意思是:输入a list of sections, list<section>, 在每一个section中有很多product,每一个product有两个属性:user,relevancy ,你可以通过调用系统API得到这两个值。 每一个section有score所有的product的score之和,每一个product的score是user * relevancy 。 最后给这个list of section排序,使得score大的section在前面。 这个题目其实很简单,但是他前面描述这个问题花了很多时间。 第二题:设计一个 in memory cache system,支持 1. capacity(这个system有一定的容量) 2. TTL(time to live) 3. LRU (least recently unused) 答案参见:https://leetcode.com/problems/lru-cache/ 第三轮:老美 继续问简历上面的一个项目,然后给了一个leetcode的原题https://leetcode.com/problems/surrounded-regions/ 由于问我简历,问的时间太久了,结果算法题目的时间就很短了,算法最后没有在whiteboard写完,但是思路给他们解释清楚了。 第四轮:老美 第一题:给我展示了他们组做的一个APP: Myhabit,(可以在AppStore上面下载看看),面试官给我指着Myhabit上面的一些功能,让我去自己设计。在白板上写出自己的思路。 第二题目: linkedlist 每个节点多一个random pointer。leetcode原题。我用hashMap做出来的。 第五轮:(老美) 第一题: 设计一个大楼的电梯(Amazon经典面试题目,面试前面我专门总结了一下^_^) 第二题:继续问简历上面的项目。 总体感觉,对自己以前做过的简历上面的项目一定要熟悉。两道算法都是leetcode中等题目。回答问题时最好要以customer为中心。 来源于 一亩三分地BBS