注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
四轮,整体氛围很轻松
发个微软的面经回馈地里。先说体感:这是我今年面下来氛围最舒服的一家。面试官普遍很友好,不会故意为难,遇到卡住的地方会主动给台阶。题目难度中等,但很看重代码质量和交流,写得糙就算做出来了也未必好看。
题目用谐音。
第一轮
面试官是个做前端出身的老哥,一上来先聊了十分钟他们组在做什么,说「我想让你先知道你会做什么,再来判断要不要认真答我的题」,感觉挺好的。
题目是舞斯,螺旋矩阵,按顺时针把二维数组打印成一维。
这题的难点全在边界处理。我用的是四个边界变量 top、bottom、left、right,每走完一条边就收缩对应的边界。写的时候特别注意了两个地方:
一是从右往左走和从下往上走这两步需要额外判断,否则单行或单列的矩阵会重复输出。我在写之前就先说了这个坑,面试官说「很好,很多人是跑 case 才发现的」。
二是循环终止条件用 top <= bottom && left <= right,而不是靠输出个数计数。
写完他让我跑了三个 case:1x5 的单行、5x1 的单列、还有 3x3。都对。
fo强的对抗感,但问题都很实在。
一些建议
一、微软很看重代码本身的质量。 把辅助方法抽出来、变量名起清楚、边界条件在写之前就说出来,这些都会加分。我有两轮都因为代码组织得到了正面反馈。
二、follow up 的方向是「换维度」而不是「加难度」。 单机变并发、无状态变有状态、单机变分布式,这三个方向准备一下,基本能覆盖大半。
三、注意函数的副作用。 反转链表那题给我上了一课,实际工程里改坏调用方的数据是大忌,面试的时候主动提一句会显得很有经验。
四、AA 轮聊的是判断力而不是知识点。 怎么判断一个方案值不值得做、怎么在陌生领域上手,这类问题准备的时候要有自己的框架,不能临场编。
五、氛围轻松不代表标准低。 面试官越是不给压力,你越要自己主动把该说的说全,因为他不会追着你要。
祝大家都顺利,求大米。 |