微软ios社招的面试经历

一轮:

1、先让我自我介绍。

2、第一个问题:怎么优化应用启动时间。

3、 whiteboard,给了第一个情景:一个email应用,简化版的outlook,只有messagecontacts两个tab,需要设计一个架构,让API读的数据,能及时给到tabs里。

4、要做启动速度的优化,要做下载的优化便于用户可以及时看到contacts的内容。

5、给了第二个个情景:有个处理数据的for loop,当数据量在5000以下时,可以正常运行,但是一旦超过这个量,程序会crash。他给了几次提示:和对string的操作有关,和autorelease有关。


二轮:

1、自我介绍。

2、在Xcode上运行了一个contacts页面:上方一个左右滚动的collectionView,下方一个上下滚动的tableView,这俩东西是联动的。他在代码里设置了很多可以改善的地方,都和TableViewCollectionViewScrollView的操作相关。

3、全部处理完后,时间也差不多了,他回答了我几个问题,结束。


三轮:

1、互相做了自我介绍。

2、然后whiteboard,给了一个情景:一个email应用,就是一个tableView,然后每个cell是一个messages

3、然后不停的加follow up:怎么给cell添加数据;怎么下载数据;怎么异步下载,然后回到主线程;怎么做caching

4、因为我用了一个dictionary,他问我怎么加快读写速度并且防止线程冲突;

5、然后问我如果在第一次的API call里拿到一堆数据,怎么把这堆数据以array的形式加到第二个API call,然后把第二个API call回复的数据加到cells里。


四轮:

出了道算法:N * Mmatrix,里面有为1slot,有为0slot。找出所有为1slot,并且把相邻的slots记为1块计算sizeslots的数量)。

输出:给出array形式的slots sizes,因为会有很多块,块与块之间不相连,要分别计算他们的size。由于是whiteboard,只写了pseudo code15分钟不到,边说边写弄好了。然后又follow up了一个改进算法space complexity的方法,最后用了25分钟。


五轮:

给了一道celecrity in the party的算法题:一个party,可能有celeb,可能没有,所有人都认识celebceleb一个人都不认识。所有人以一个array来表示,每个人是一个Person class,这个class有一个方法,know(person: Person) -> Bool。通过这个方法,来找出celeb

#微软##面试流程#
全部评论
哇 少见
点赞 回复 分享
发布于 2020-05-11 09:49

相关推荐

07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
评论
1
9
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务