狗家ios onsite 过经

刚毕业在家躺尸的时候突然有hr联系。因为之前面过intern,hr说可以用之前的oa和电面,直接进onsite。有点惊了,因为已经是一年前面的了,而且效率太慢没等到结果出就去了别家了。人在国内,就在北京的office面了五轮。本来邮件说三轮算法一轮domain一轮hr,实际面的却是四轮算法一轮hr。会议室里面自带了ThinkPad,不用在google doc里面写代码的感觉挺好的。。。
不过缺点是只有我能操作,面试官没法像在google doc里面那样直接把题目贴出来,要口头描述,远程没有白板的时候就有点麻烦。我之前的实习基本都是做ios的,对算法实在是……不怎么用也不怎么懂。面前突击刷题,到最后也没刷上100道。。不过可能考虑到我的情况,题目也不算太难?下面我有见到过的蠡口的题有标注,有没见过的如果是蠡口上的,也请大家提醒下。
第三轮是北京的一个感觉比较senior的engineer面的bq,大概是问了下以前的项目。有印象的几个问题是,工作中有没有对人印象发生改变的时候,领悟了什么。如果负责的一个项目,有很多客户有各种不同的需求,设计上应该考虑什么问题。
如果我管理的一个很大的code base,有人想改其中一部分,但他的改动会影响其他使用者的话,怎么处理。如果要改的这个人是很重要的客户而且很急,一定要改,怎么办…
第四轮是上海中文远程面的。有一组要雇佣的人,有各自的capability和expectation,性价比可以考虑成expectation/capability,问雇佣所有人的最小花费是多少,要求是以固定的性价比雇人。解法是算出来所有人性价比然后取最优性价比,乘capability之和。follow up是现在要在n个人里雇k个人,雇这k个人的时候取的是这k个人的最大比率,比如说A的c是5,e是10,B的c是5,e是15,就要按15来雇佣他们。求最小花费。这轮比较顺利,小哥最后的反馈也很直白很积极,直接说我感觉答得挺好的hhh,很可爱。
第五轮是上海英文远程面的。第一题是蠡口253,会议室2。第二题是蠡口305,number of island2,没做过,只做过200。。。有点纠结不过总体还ok。对于如何存connected components这一点,我从每次加完都用200的方式遍历算,到每次把连到一起的标记成一样的,到用island->array of connected island的dictionary来存,到用set来存,到在他的提示下直接用island->island的dictionary来存,全靠现场硬想。。
两天后hr联系说结果总体还可以。我没想到最差的一轮是第二轮,第一轮反而还可以,剩下三轮都不错。看来是没满足到简洁清晰的要求,细节也不到位吧……因为本来说要面的domain没面(应该是第二轮),在家远程加了一轮domain。问了一些基础问题,题目有如何比较两个UIView(包括subviews,subviews可以有不同的排序方式),threadsafe dictionary(用queue做,也问了不用queue的话还能用什么)。
昨天过了hc。感觉真的很幸运,年初的时候本来在面学校那边的google,由于还在上学各种事情太多拖了下时间结果就招满了。现在想想那时候面的话也会比较仓促,搞不好就freeze了。在家闲着的时候几乎同时来了几个机会,本来想能随便过一个就行,结果还都过了。感谢论坛里的面经。

100题拿谷歌的offer,楼主是真牛逼?请问是清华的吗?狗家国内有ios的业务?

面的不是国内的,只是人在国内所以就近面的。不是清华,大学在加拿大。

想问一下楼主面的是哪个office?是加拿大的嘛?
如果是加拿大office的话,面算法的时候 …

不是加拿大office,那边组不太适合我。算法语言用的Python,我个人觉得Python好写一点。但只要稍微主流点的应该都可以