微软STCA暑期实习——一面&终面
一面
1、英文自我介绍
2、项目介绍
3、算法题
给一个只包含-1和1的数组,求和大于0的最长连续子数组的长度
要求不能用o(n^2)的算法复杂度
没有做出来,尝试过前缀和、单调栈发现不太行,
耐心的面试官一再提示,可以用最小栈,先一次遍历生成,后序遍历之类,还是没有get到意思
尝试蹲一个更优的解法
三面(一面直接过了,猜测可能是项目讲得比较清楚)
1、中文自我介绍
2、聊项目,这次聊得稍微更加细一点
3、算法题(实际上很简单,属于送分题)
给两个无序的链表,找出其中第K大的节点,用能想到的最优的方法解
一来就直接用了快速选择算法,写完之后需要在自己的ide上写测试用例跑结果,写了一个链表生成函数测试,但跑出来结果不对,面试的时候比较紧张,以为是自己快速选择的时候partion函数出了错,演算了很久没找出来,最后bug没调完,直接下一阶段…
(面试完复查,发现返回值返回的是索引k,第k+1大的节点。。。返回索引k-1就对了)
4、全英文交流,问去微软的原因和自己的适配价值,以及英语反问
5、总结:自我介绍、项目交流以及最后的英文交流感觉都还可以,虽然我英语很菜,但面试官英语真的很强…
遗憾的是算法题,当时脑子里闪过多种解法,有用暴力的,或者用现成的优先队列,都可以很快的解出来,然后选择了最费时间的快速选择算法,导致bug没调完很尴尬,以后遇到类似情况还是尽可能用比较省事的解法,先做出来再说。
ps.面试官超级好,非常和蔼
#实习##微软#