微软苏州 2022 Summer Intern SWE-MMD面经
学历:普通本科 软件工程 大三
面试官没说有保密协议,看到大家都发了我也来发一下
记录一下人生前两次面试(求offer
3/19 官网投简历
3/25收到笔试预告信
3/27笔试 满分
4/8 一面邀请
4/12 一面
面试官是个小姐姐,进来先自我介绍,竞赛经历,闲聊,然后开始问CV+AI项目(大约5分钟)
CV+AI项目 20分钟
问的特别细,从思路的诞生到实现全部答了一边。
算法题:LIS
面试官只说了个LIS,我问了具体的输入输出,确定了输出最后一次出现的LIS以及LIS的长度
(按照惯例,开始xx
我太紧张了,理解成了segment,五分钟左右写完,开始造大数corner case,0,和负数,大约测了五分钟左右,确定没问题了之后给面试官看,面试官说为什么没有考虑到后面的数字,我发现我理解错了,然后和面试官说不好意思,理解错题意了。
面试官很好,说:没事没事,就当是第二道题了。
然后还剩下5-10分钟左右,nlogn写不完了,我和面试官说有个N方的解法,他说那我写吧
最后10.44的时候,我写出来了,面试官说看两个test case,然后一面结束了
4/15 LEAD面邀请
比较意外,我一面之后觉得挂了,一直在等二面,结果收到了通知
4/16 LEAD 面
LEAD面是个特别和善的小哥,进来确认身份之后开始聊竞赛经历,然后问我是不是想投算法岗或者机器学习岗,我说不是的,我投的是SWE-MMD
CV+AI项目 15分钟
算法题:20分钟
长度为n的数组,选取k个,求最大的和,且这个和能被偶数整除。
一开始我和面试官说用dp,然后写了个三维dp,分别代表前i个,选取了j个,当前是否是偶数。
面试官说好的那你写吧
(我开始了xx之路
我写一半开始想,能不能压缩到二维,一直在想没有写,大概卡了有10分钟。
后面面试官问我为什么卡住了,我说是在想能不能优化成二维dp
面试官的提示:其实这个题不太好优化成二维
然后大概一分钟左右,我确认了三维dp是对的,给面试官写了状态转移方程。
面试官说可以,这个方程是对的,和我说其实还有一种解法,复杂度比DP低,能不能想到
我先说了位运算,然后10s左右之后说分堆然后贪心,说了贪心思路和边界条件。
面试官确认了我的想法,说就是这样的,还有一点边界问题
FPS项目(15分钟)
面试官说你再挑一个项目讲讲吧,我开始讲我大一写的一个Unity3D的游戏,还有开发中的困难,并且演示视频(大约3分钟)
之后面试官进行拓展
问:如果这个项目你要做成一个网络游戏,你怎么设计网络结构
(之前没有了解过这方面的东西,凭借着游戏经验答了)
答:架设服务器进行指令的上传,本地负责跑渲染,服务器负责检测数据的合法性和关键逻辑判断,以排除作弊,检测完之后将对应的状态分发到各个玩家主机,采用UDP的形式,以确保如果有一玩家出现卡顿,只是这一玩家卡顿丢包,而不是令所有玩家集体卡顿,采用每一帧同步的方案。
面试官:你说的这个是一个比较经典的帧同步方案,之前很多游戏是这样的。
问:这么做的话服务器负载很大,怎么处理?
答:主从模式容灾+分布式运算(各种细节blablabla)
问:服务器处理的数据有哪些?哪些数据是在本地跑的?
答:游戏中的部分敏感内容,属性,交易等送服务器,如服务器返回boss是否被击中,返回击中消息,然后本地跑击中后的动画状态机和hitbox的变化等
总结
MS的面试官非常棒,体验非常好,会去引导你解题,非常的温柔
两次面试算法部分太紧张了,来写面经祈福,球球给个offer吧。
全部评论
(8) 回帖