微软暑期实习面经汇总
微软STCA NLP实习面经
作者:牛客646160723号 链接:https://www.nowcoder.com/discuss/744650?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack 来源:牛客网
一面(9.10)
1.自我介绍
2.算法题 从数组中找第K大的数。我先用小顶堆实现了,复杂度是(nlogK),面试官问我有没有其他方法,提示我用快排,我就对快排改一下,实现了。
二面(9.14)
1.自我介绍
2.问了一下pytorch的基本知识,例如reshape和transport,因为几个月没碰算法了这个答得不好
3.算法题。从[0,5]这个均匀的概率分布(骰子)中实现[0,9]的概率分布。我大概用两个这样的骰子实现,(a*6 + b)%10
4.算法题。反转链表,白板写这个比较简单。
5.概率题。车有10个座位,总共卖了12张票,乘客有0.6的概率不来坐车,问至少有一个乘客站着的概率。二项分布,这个也很简单。
微软STCA面经
3.20 笔试 4.8 LC1邀请,但是后来取消掉
4.26 LC1
1.自我介绍,聊项目,大约20分钟
2.(共享屏幕做题)旋转图像(LeetCode原题)
但是我没做出来,我后来看了题解,跟我的方法都不太一样。我用的直接通过索引旋转的方式。 大概就是这种方法,当时算索引一片头大,没有当场算出来,只算对了3维的,4维的没解出来。 可能是我思路比较不一样,但是还是过了
void rorate(vector<vector<int>> &matrix,int n,int size,int l)
{
for(int i=0;i<size-1;i++){
swap(matrix[l][l+i],matrix[l+i][l+size-1]);
}
for(int i=0;i<size-1;i++){
swap(matrix[size-1+l][size-i-1+l],matrix[size-1-i+l][l]);
}
for(int i=0;i<size-1;i++){
swap(matrix[l][l+i],matrix[size+l-1][size+l-i-1]);
}
}
4.30 Leader
1.自我介绍,聊项目,15分钟
2.假设你能获得抖音后台数据,如何获得点赞视频的中位数。
我当时以为是数据流的中位数,但是提示我想一下数据更新方法,后来发现数据更新是类似于视频的点赞数不停变动那种,而不是数据流中位数。
3.(共享屏幕做题)获取Excel的StringHeader,就是输入1输出A,输入26输出Z,输入27输出AA这种。
5.13 信息收集邮件
5.14 调剂邮件(疑似是STCA挂掉导致)
5.16 Transfer 到SWE,并且Status变成Completed.
5.19 Offer
记录贴 微软苏州 STCA Summer Intern 面试
作者:南大秃头彭于晏 链接:https://www.nowcoder.com/discuss/638754?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734743085 来源:牛客网
一面
自我介绍,中文。本来准备了一晚上的英文自我介绍,结果面试官直接说用中文就行。。。。。
问项目,大概有20分钟左右。因为自我介绍说自己有个项目投递了顶会,然后就让我给讲讲这个项目。感觉面试官也不是搞CV的,所以没有挖掘什么东西,就是讲一讲自己论文的背景啥的,所用method的基本原理,做了哪些东西,达到了什么效果。还问了本人是第几作者(哈哈哈,当然是一作啦)
开始做代码题,问我主要用什么语言,我回答python,明显感觉面试官顿了一下。。。(python果然是鄙视链底层啊)后来解释了一下,之前也学习过C++,但是最近搞科研项目就是python用的多,C++可能不是很熟练了。虽然面试官说用python也行,但是感觉减分不少。 题目:二维数组从左上角走到右下角最小路径和。剑指 Offer 47. 礼物的最大价值
使用本地IDE并分享屏幕,虽然一开始面试官说这题简单就不用IDE了吧。。。虽然题目不难,但是微软比较看重代码的可读性、简洁性跟规范性。面试官说我写的代码有一段冗余了,没有非常简洁。然后说我另外创建滚动DP数组,额外增加了空间(不过我解释了滚动数组可以不用改变原数组的值,他说也对,也是一种思路)。可能时间比较紧张,我看快到45分钟了,就没有仔细检查优化代码,所以被挑出毛病。感觉写完代码还是应该仔细检查优化一下,面试官又没说注意时间,他不急我急啥,害
因为我单方面非常精准的把握时间,所以整个面试45分钟就结束了。最后面试官让我把写的代码复制给他,整个面试就结束了。
提问环节,问了下面试官苏州STCA暑期实习生是不是统一招聘,是所有实习生招过来做软件开发,还是有不同分组?答:录用后根据实习生的个人情况,再分到各个不同小组。
二面 lead round
自我介绍,中文
简单问了下项目,没有怎么深入,问了下自己做的这个项目遇到的最大难题是什么,大概讲了讲。
问了有没有项目相关的实习,回答没有,然后就直接开始做题了
第一题:大小为n的数组,范围在1~n之间,数组中有重复,但是重复次数不大于2,求出所有的重复数字。要求:不能使用任何额外空间,快速排序的数字交换那种也不行。
第二题,一个二叉树,数值为int型,给出从根节点到某一节点的路径最大值。
太紧张太紧张太紧张了!!!因为我很想去微软,非常非常想去,期待值过高,导致这一次面试非常非常紧张,面试基本脑子不转了。。。第一题没做出来,在面试官的提醒下,大概有点思路。面试官看我没做出来,出了个简单的第二题,结果我脑子直接瓦特了,第二题也在绕过来绕过去没说对。。。(后面冷静之后一想,这不就是个DFS嘛,太简单了啊!我服了我自己,面试的时候一直想BFS。。。)
面试官因为我这个菜鸡还搞得超时了,一个小时了才结束,题目没做出来最后就那样结束了o(╥﹏╥)o
周一上班应该就能收到感谢信吧,吸取教训,秋招再战吧
更新: 嗯。。。。。。今天(5月19号)竟然收到了微软的offer了。。。我本以为早凉透了的。而且我投的苏州,给我调北京去了。不过我已经开始实习了。。。这下有点麻烦了
微软苏州stca sde/swe 实习面经
作者:yang👴yang 链接:https://www.nowcoder.com/discuss/651448?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734743085 来源:牛客网
祝大家offer多多 2021.3.12 笔试 做出88%
2021.4.8 收到一面通知
2021.4.12 微软一面
面试官是bing搜索组
什么是树,什么是二叉搜索树,什么是二叉平衡树
手撕:寻找一颗二叉树最后一层最左边的节点
扩展:还有没其他实现方法?提示现在使用BFS(层序遍历)写的
DFS实现上述代码。讲下思路并 证明
什么是图(说不出来哈哈)?
Leetcode785 知道二部图吗?面试官介绍了二部图的定义,接着让写一个函数判断一个图是不是二部图
直接懵逼,后来面试官一步一步引导得出最终结论:图中不存在环,或者存在环且所有环的节点数都为偶数的图为二部图 接着问怎么实现,联想到leetcode207课程表的dfs找环解法,一步一步提出问题。最后没让实现
为什么要做这个项目,为什么要用rabbitmq
redis怎么解决宕机数据丢失
这面试官真是太好了,一步一步引导,最后还是给我过了
2021.4.16 微软lead round
聊项目
了解docker和k8s吗
手撕
LRU Cache,如果多线程场景下怎么处理?
那么redis怎么处理多个请求并发的场景?我说的是redis是单线程模型,就没追问。。。
2021.4.27 原本投递的是sde,一看被transferred成swe了,状态为Completed
2021.4.28 正式offer
微软苏州STCA暑期实习一面+终面凉经【已感谢信】
作者:dragon_bra 链接:https://www.nowcoder.com/discuss/619269?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
3.15 一面(50min) 自我介绍+概念题 英文介绍(对着稿子说着说着发现截图掉了最后两段,草草收尾,逐渐紧张。。。)
介绍一下你的一个项目吧
面试官:我更希望听你从设计模式方面来讲你的项目,但你更多的是讲的算法相关的是吧,不过没关系
设计模式还有了解?
介绍一下死锁吧
C++的虚函数了解吗?virtual?多态了解吗?
【此时心想,咋这么多概念题,,我以为上来微软就算法呢。。】
那问道数学题吧,小学时候我们学过,能被三整除的数字有一个性质,就是各位的和加起来能被三整除,为什么?能证明一下吗?(讲得比较好吧,面试官说很好,然后就发链接写代码了)
算法题(给了一个在线编辑的网页链接写代码)
- 给一个字符串,仅由空格和单词组成,只要不是空格就是单词的一部分,把单词的顺序全部反转,并保留原来的两个单词之间的空格长度。比如:" Nice to meet you! \0" -> " you! meet to Nice \0" (题很简单,肯定是O(n)解决。但是面试官考察的更多是在问能不能优化性能(常数级别),比如要求传入的是一个char *,直接在原串的空间上把答案存进去。)(然而我为了写的顺手用了一堆string)
(还好第一题手速比较快,面试官又给了道题,不然写代码部分就惨了)
2. 给两个数组表示rank的分数,比如[6, 3, 5], [8, 4, 6]这两个,每一个代表给每个下标的page的一个打分,但是最终结果不关心打分的分数,只关心这一组page里的排名大小是否相同。写一个函数判断这两个数组代表的排名是否相同。 (问了一下要求O(n)吗?面试官说那至少有一个排序的复杂度吧。直接不想神仙离散化操作,直接开数组sort。。两个数组分别存一下val和idx后sort,然后判断两个数组的idx是否相同)
(思路没问题,问能否优化?答只sort一个数组根据idx判断另一个序列的val是否递增的,面试官说对的)
感想 写完第二道题,面试官说后面也没有别的场次面试了,和我多聊一聊吧,然后就问了些情况之类的。 当时面完觉得算法题太简单了,没展示出什么优势,然后八股答得又比较一般,结果聊到最后还蛮愉快的,感觉面试官人很随和,顺利通过一面。
3.19 二面(45min) 介绍 用英文介绍一个你做的项目吧(当时现说的,有些磕磕绊绊) CCF-CSP是什么?CCPC是什么?
算法题(共享屏幕写代码)
题面:给一个字符串,找到其中最长的回文子串(teams里发的文字描述,还有几点别的要求,能想到的最优复杂度,测试尽量完备的测试数据等)
当时看到就有点慌(平时字符串做得比较少),,说,我知道最优解是O(N)O(N)的manacher,但是我可能忘记了几个关键点,现场可能手写不出来。面试官说没事,他面试几百人可能现场能写的也没几个,你写你能想到的最好算法就行了。
我当时纠结了一会儿,没什么思路,感觉除了马拉车肯定都是n^2n 2 的,面试官说,你可以写dp啊。
我又想了很久,觉得dp的复杂度似乎都没有暴力扫一遍优秀啊,如果有二维那肯定是n^2n 2 起步,状态看着也有点小儿科。于是说我可能还是打算写暴力吧。
然后就开始写,我直接想到的暴力就是插入分隔符后扫一遍中心扩展,一边写一边在说我的思路。【面试官直接打断说,你确定你有认真读题吗?请发挥出最好水平,写出你能想到的最优复杂度的解法。】我那会儿就很慌了,说我可能dp想不到很好的定义状态的方法,没有马拉车那步关键的优化复杂度肯定是n^2n 2 的。
于是我还是接着写中心扩展,一边写一边试图解释我的思路,【面试官再次打断,说你安静写你的好了,时间也不多了。】
写完之后,我说应该没问题了,我多出几组测试样例再试试。面试官突然说时间差不多了,你那边代码写的怎么样了?我说差不多了,我的暴力写好了。然后面试官直接说,那你还有什么问题想问我的吗?(当时心情挺复杂的,我写代码的时候看不到teams的摄像头,看他说问问题的时候似乎也在看电脑屏幕别的地方,好像完全没读我的代码之类的……)问了问题他也没回答,直接嗯嗯了两句说,你现在大三是吧?以后机会还多,拜拜。
感想 终面的体验真的很糟糕,感觉面试官后半段都不愿意理我,也不看我的代码也不听我说话,有种拳头打在棉花上的感觉,可能这就是Lead面吧(苦笑)重温了一下manacher发现当时距离正解就差一个maxRight的点拨。当时百思不得其解,难道有O(n)的dp解法我不知道吗。。
后来和同学复盘,发现LC上题解的dp就是n^2n 2 ,且空间也是n^2n 2 ,那么复杂度其实是劣于中心扩展法的,而我把中心扩展称为“暴力”,可能面试官当时以为我说的是n^3n 3 的暴力,就完全不想听我的思路了。。思考了一下,感觉这次最主要是吃亏在了自己知道自己的算法不够优秀,就说了是暴力,下次得先说,“我有一个n^2n 2 的算法”了。。
但是面完到现在心里还是很难受,有种很强的挫败感。感觉自己很不被尊重吧,没有在面试时间里进行有效沟通就被否决了。后半段也仿佛是在和空气说话,代码不读也不保存,就草草结束了。感觉和之前看到的微软面经比起来,心理落差还是有点大。。
不过归根结底也是自己太菜了吧,如果能在说出正解是manacher后直接写出来,也没有那么多事情了。。
3.20 感谢信 结果很意料之中,但是内心很拧巴
祝大家面试好运,加油
微软苏州STCA 暑期实习面经
作者:说好的排骨呢 链接:https://www.nowcoder.com/discuss/643072?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
一面(2021.4.7)
有一个只有0/1的矩阵,标记为1的是墙不可通行,你有一把锤子,能够砸穿一面墙,问从起点到终点的最短距离。
因为网络问题迟到了,时间不太够没想全情况。 (ノへ ̄、) 其实只需要直接从起点进行bfs,对每个点标记两个状态(到达的时候有没有砸过墙,因为有可能某条更长的没砸过墙的路可行,但是经过的点提前被砸过墙的路访问了),两个状态第一次到达的时候都标记然后入队,就可以解决了。 另外因为这道题只砸一面墙,也可以分别从起点和终点进行bfs,路上不砸墙,再对每个点求取到起点和终点的最短距离和,取最小值(枚举到墙的时候就相当于路上砸了这面墙),脑测了一下应该可行。
二面(2021.4.9)
1.在一个排好序的数列中找某个数的第一次出现和最后一次出现
因为当时面试官引入问题的时候先提了二分搜索,所以就说二分查找大于这个数和小于这个数的第一个位置,看左右是不是这个数,是就输出。然后写了其中一半的二分。
2.实现map
说实话这个问题我在面经里看到过,但从没想过有一天真的会被问到。面试官说要问一个我平时接触不到的。 (⊙﹏⊙) 于是就说先求hash值(我知道C++的map是红黑树,但是不会写),然后开了个二维不定长数组,将key-value存进对应的hash值处。插入的时候查询是否存在,存在就修改,不存在就插入,查询的时候也是差不多的流程。 然后针对代码简单讨论了一下多线程和锁的问题,比如写操作可以只锁正在修改的那一个hash值的位置之类的。最后聊了差不多五分钟的天,提前结束了。
Leader面(2021.4.13)
英文对话+问题交流+一道简单的算法题(给出年月日,求是这一年的第几天)。
这一轮面试的感觉相当糟,对话一塌糊涂不说,这么简单一道题代码还出了纰漏,后面基本就是面试官逮着我的代码格式和变量名挨个怼(因为我是个打比赛的菜鸡,为了追求写代码的速度和表面的简洁,写的过程中会省略掉能省的括号和空行什么的,不符合大众规范)。这事我以前从没注意过,以后真的要多上心。 后面还探讨了一下怎么优化,譬如比起省掉一个小循环,%运算更值得改进之类的。
后续 最后一面这么反常,我觉得我肯定凉了,而且当时脑抽选了个不常用的邮箱,这一周就都没去管。 今天去邮箱看了一眼,发现前天(4.15)收到了信息采集表,昨天(4.16)收到了offer。嘛,这就是意外之喜吧。 也祝大家都收到心仪的offer,心想事成,天天开心。XD
顺带一提,今天(4.24)又一次突发奇想(……)查邮箱的时候知道了组,是M365的。强烈建议大家真的别选不常用的邮箱,容易像我一样屡屡险些误事。
微软2021暑期实习面试—时间线
作者:牛客56814494号 链接:https://www.nowcoder.com/discuss/666613?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
2021.03.20 官网投递简历,苏州,STCA, Software Engineer Intern
2021.03.26 笔试,三道题,分数79
2021.05.12 一面,做了一道数学题,没有撕代码
过程:英文自我介绍==>做数学题,跟面试官说了几个思路,但是都不行,最后也没有做出来,但是整个面试过程很流畅。
题目:一排黑球中间穿插红球,只允许相邻的球进行交换,求使得红球聚拢到一起最少的交换次数。
2021.05.18 Leader面,撕了两道题,都做出来了
过 程 :和面试官相互自我介绍,中文==>两道代码题,用面试官发的白板链接写的代码==>反问环节。
题目1: 反转字符串
题目2:序列化二叉搜索树
附加 提问 :采用前序遍历和层序遍历进行序列化各有什么优缺点(这个没有回答得上来)
2021.05.25 Data collection 2021.05.29 Offer
=====================分割线 ============================ 个人感觉自己这次面试经历还是比较幸运的,leader面的代码题也比较简单,微软面试官们都很nice,面试体验非常棒! 写这篇帖子,记录下自己面试的经过,给之后的小伙伴们留些参考,毕竟自己在整个求职过程中也都很焦虑,等待的时间是真的很长~
阿里五面+微软两面实习面经+offer比较
微软一面
都了解哪些设计模式
介绍一下单例模式
单例模式的优缺点是什么
介绍一下MySQL的索引
为什么MySQL要用B+树呢
做了两道题:leetcode39.组合总和 leetcode40.组合总和 II
微软二面
自我介绍
你觉得算法题目的代码和项目的代码有哪些区别
如果让你设计一个系统,你设计的时候要考虑什么,才能让系统做到高内聚低耦合呢(因为上一个问题我说到项目代码要考虑面向对象的方面)
说一下面向对象中的多态
你觉得像Java和C#这样的语言采用自动内存管理都有哪些好处和弊端
操作系统中进程和线程的区别
聊了聊并发的一些内容
**写一段代码实现:给定一个整数num和一个offset,得到将这个整数左移offset位的结果(例如num为12345,offset为2,那么要返回34512)
其实题目不算难,但要考虑好多细节。例如offset小于0怎么办,大于num位数怎么办,整数移位后超出int型范围怎么办等等**
微软苏州STCA暑期实习面经
作者:菜狗就是我自己 链接:https://www.nowcoder.com/discuss/657566?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
先写下timeline 3.16 投递 3.28 笔试 4.28 面试邀请 5.12 一面 5.18 LEAD面 5.20 感谢信
/------------- 分割线 -------------/
一面
自我介绍:大概三分钟。主要是为了让人放松一点。 直接做题两道:顺时针旋转矩阵+实现LRU 两道题先解释思路再写,第二题解释的时间比较久,中间有打断,做完大概过去30分钟不到。 又问了http和https。答的一般 后面问了最近读了那些书(非技术或课程相关),说三个你认为程序员在非技术方面需要的能力。 反问环节:问了下苏州那边的site大概有哪些分组;实习生和全职考察的能力侧重是否一致,哪些比较重要。又问了觉得面试情况怎么样,没有正面回答,只说HR会给feedback。
目前进行到一面,后面有进展继续更。希望后面也顺利,发面经攒下人品。
/------------- 分割线 -------------/
LEAD面
惯例自我介绍:连说带交流,大概5分钟 听到实习是搞image processing写Python,刷题用Java,问咋回事儿。解释了一下,说EE转专业来的想转开发。 听说是写Java:小伙子JVM懂吗?ummm,没看过源码,就看过点点GC机制,blabla... 看我编不下去了,说那咱开始写题吧。
给一个入栈的序列中间可以随便出栈,求一共有多少种出栈序列的可能(e.g. [1,2,3] -> 5) 现实让我吧[1,2,3]的结果个数告诉他,交流了一下过程, 这个大概过去5-10分钟
一开始说枚举排列然后验证,面试官说,这个思路可以做但是复杂度太高了让我想一下有没有其他思路。
支支吾吾连想带说,说可以回溯模拟一下出栈入栈(都没想好咋实现,就说了)。
面试官听到这思路说可行,面试官中间有事离开了15分钟,中间卡住了叫天天不应,说都没人说......
等到面试官回来基本没剩多少时间了,没写出来就进入了反问环节。 问了学习的建议和技术选型的建议,因为问题很宽所以回答了个大概。 然后就结束了...
LEAD面这轮表现是真的糟糕 这轮面试官好像很忙,没有像第一轮一样有个share doc在上面白板写码。 只让teams share屏幕,Mac上teams又出了点问题一直share不了。 各种原因导致沟通很不顺畅,浪费了不少时间... 加上一开始就思路受阻,心态炸了。 八成是直接无了,坐等感谢信...
/------------- 分割线 -------------/
已经感谢信,比之前看的部分面经里来的快一些。
微软暑期实习sde-STCA 北京 一面-终面面经
update:4/14刚刚收到offer了
微软的面试很硬核,没问一句八股文,上来就做题。
一面:
1、给你一个random6,如何实现random10
2、给你一个random1,如何求pi
3、罗马数字转数字
4、开头的时候简单地聊了一下项目,但感觉面试官并不在乎,似乎只是为了让面试不那么单薄😅
终面:
1、滑动窗口 求数组中连续k个数的最大平均值,送分题
**2、二叉树的序列化和反序列化
3、八皇后
4、沿途加油站,求汽车从起点到终点需要加油的最少次数
嗯,终面就聊了五分钟项目,然后就是撕代码,难度都不大,基本都是medium。
攒一波人品哇,求早日收到oc😭😭😭
微软苏州STCA暑期实习面经
作者:JosephJohnny 链接:https://www.nowcoder.com/discuss/630248?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
3.5 笔试
3.15 一面
先是简单的自我介绍,然后对着简历问了下之前的项目经历,由于楼主本硕都是自动化的,且实验室做的项目都是工业控制项目,因此面试官没有问很多细节,只是简单了解了下项目的过程,更像是聊天,整个过程还是比较轻松的
接下来就开始做题了
-
给定一个无序数组,找到三个数使得乘积最大
-
给一篇文章,找出词频最大的十个单词
3. 计算器只支持-1操作和 *2 操作,初始值x和目标值y,最少通过几步可以从x到y
感觉这次运气比较好,没有碰到比较难的题,面试官反馈说表现不错,让我好好准备下一轮面试
3.19 终面
是Leader面,但是貌似这次Leader有事没来,等了几分钟后进来一个小哥,应该是临时被拉来的,花了几分钟出题目
先是问了下有没有做过互联网的一些项目,回答没有,就说那我们直接开始做题吧
1. 给定一个链表A,要求在A的第i到j位置中间插入B链表
- 给定一个二维数组matrix,每一步的代价是两个位置数字的差的绝对值,求从左上角到右下角的最小代价
由于是面试官临时出的题,可能他一下子也不是特别熟,在沟通解题思路的时候不是很顺畅
================================================ 3.24
收到了收集信息的邮件
3.31
收到了offer
总的来说,微软的面试体验还是非常棒的,没有问一点八股文,面试官也非常nice,整个面试过程都是比较轻松的
btw,那个survey也必须在两天内完成嘛,现在还在和导师沟通中,暂时没法确定实习时间
微软苏州STCA 2021暑期实习一面面经
作者:SPRRTY 链接:https://www.nowcoder.com/discuss/615719?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
3.15下午场
上来简单自我介绍,介绍项目。 项目都是机器学习相关,提问内容均为项目中用到的模型,问了CNN,RNN
做题:
- 求第K大,首先提出用堆排序,但是由于堆排序相当于求出了1-K之间每个第k大,没有必要,于是按照快排思想在codeshare上白板写题。
2. 给MxN矩阵,每个矩阵有非负值,求从一点到另一点最小路径,要求只能往小于当前值的坐标走,第一问最小路径的定义为经过的步数(BFS),第二问定义为经过格子值的总和(DFS),第三问为中间有k个障碍不能走,有去除一个障碍的机会,求最短路径。(当场时间不太够,只说了一个每次随机去除一个障碍,分别求最短路径)
全程中文面试
3.16下午收到LEAD面通知邮件
发个面经攒人品
微软苏州STCA暑期实习面经(已拿offer)
作者:牛客416603874号 链接:https://www.nowcoder.com/discuss/404378?type=post&order=recall&pos=&page=2&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641734918542 来源:牛客网
4.12日编辑:
发现除了题没有写日常的面试流程,特来加上:
一面:自我介绍(中文)-> 问项目(面试官询问项目细节)-> 做题 -> 问答
二面:自我介绍(英文)-> 项目介绍(面试官让我主动介绍)-> 做题 -> 问答
————————————————————————————————————
等了刚刚好两周终于拿到了人生第一个offer,激动的心,颤抖的手~
本来上个月的几次面试都不是很理想,现在来看,除了自身的菜,在众多面试中,微软确实是花了心思的,刷题、准备中英自我介绍、准备项目介绍都有做,算是付出有所回报吧。
写篇面经感谢牛客网的各位盆友,等待offer群的各位盆友,以及特别感谢一位微软的学长给的帮助!
进入正题: 网申: 大概2月28左右进行网申(内推),3月12接到了面试时间收集的问卷.
一面(3.19):
一面是在中午,面试官是个很温柔的哥哥?,感觉很年轻。因为一些原因面试官上线迟到了20分钟,所以整个过程很紧凑,惯例做题:
1、单向链表交换奇偶节点
比较简单,考虑了一些边界情况,还特意美化了一下代码hhh,面试官看了一下就过了
2、TopK问题,没有时间了就不用写代码,口述思路
从简单到复杂:先说了冒泡排序和插入排序,随口说时间复杂度是O(kN);然后说堆排序和快速排序;最后扯了并行计算。
说完后面试官问了TopK快排的时间复杂度,我写了算式,算到最后一步脑子抽筋等比数列求和都没算出来,紧张的不行,面试官安慰我说没关系,还跟我说其实有公式(这两天上课我才知道有主定理这个东西,后悔ads去年没选上/捂脸)
最后的最后聊了会儿天,没有怎么介绍微软,倒是给了我一些读研和工作的建议(我以为挂了结果过了)
Lead面(3.26):
Lead面据说是最终工作的组的老板,感觉很耐心很专业,惯例做题:
1、最大子序列和
非常非常经典的题,如实说自己做过,10分钟写完了
2、取整问题
例如3.14取整到3.1,3.15取整到3.2,3.25取整到3.2,3.2500001取整3.3。先说规则以及为什么要这么取整。然后码代码,给float和取整位数n。
一开始说float乘10幂次判断,两个问题是超过范围以及float不能比较,超过范围很快说了解决思路,不能比较面试官说这里忽略这个问题。最后写的时候有个小技巧最高位进位不处理,面试官指出了这个问题,我说明了我的思路(不处理进位也没关系hhh心机)。然后边界情况也是照例考虑。
两道题做完才30分钟,面试官说太快了哈哈就问我有什么问题,然后聊了研究生本科生的差异之类的,最后40分钟面试结束。
总体来说我的微软面试都很简单, 运气挺好的。面试官都很nice,感觉他们比较看重你在思考这个问题时的思路是否全面有条理,所以不要着急讲清楚就好。
对了,微软的HR姐姐们也超级nice,特别耐心地回邮件、解答问题。
最后祝愿各位牛客er都能拿到自己心仪的offer!
微软苏州STCA 一二面凉
一面:2020年4月13号
英文面试 自我介绍 介绍项目 问项目细节
中文面试 继续问项目细节 Java和C++的区别?
做题 LeetCode 124. 二叉树中的最大路径和 设计测试用例
反问环节和面试官聊得很开心呀
======= ==== ==== ==== ======== 这是一条分割线 ============ ==== ==== =============
二面:2020年4月24号
聊项目
项目的技术难点、解决了什么问题
做题
有n个二维平面上的点和距离d,将它们分成k组。
若两点间的距离小于等于d,则这两个点在一组;如果点A和点B在一组,点B和点C在一组,则点A和点C在一组。
算法返回每个点所在组的编号(0..k-1)
噼里啪啦敲完了代码,
面试官:估算下时间复杂度?如何改进?
巴拉巴拉说了一堆,好像不太对,面试官给了提示,开始接着改代码
面试官:时间来不及了,不用写了,用英语介绍下快速排序吧
第二天中午收到了thank you letter,是我太菜了,俺不配 (灬ꈍ ꈍ灬)
滚烫的微软STCA一面面经
14:30-15:30
表白温柔的面试官小姐姐
上来先是自我介绍,简要介绍了一下自己的研究方向,然后就开始手撕代码了
lc79题,撕出来以后让写测试用例
之后发了个链接给看一篇文章,表示看不懂。。
最后又问了如何判断两个链表是不是有交点
STCA 苏州微软实习生面经(1、2面)(已过)
作者:hzzzzzzll 链接:https://www.nowcoder.com/discuss/409741?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641777238449 来源:牛客网
一面:
英文自我介绍,
第一题是个模拟,给一种字符串加密方法,加密过程是把一个串不断左右左右移动: abcde => dbace,你需要写一个还原函数,简单模拟,注意长度 奇数偶数分开讨论。。O(n)解决。。但是可以常数小一点。。
第二题。给一个森林(数组形式),每个树有个高度,现在我要选一个高度,高于这个高度的树木会被砍下,我只砍一次,在给定个目标树木和target, 要求看下的树木之和在>= target 基础上尽可能小,求最接近的答案 简单的二分。。。 O(n) check... 但是据说。。计数排序可以O(n)排序树木。。。 一旦有序。。记录后缀和然后再二分中套个二分就可以让时间复杂度变成 O(n + log(n) * log(n) )。。
二面:
直接做题,把中文数字转化为阿拉伯数字, 比如 一百零一 =》 101, 二零一九 =》 2019 ,
分两种情况。。
第一种情况就是纯数字。 check下字串。不带 百、十、万,只包含一、二、三。。。这样的,直接暴力处理。
第二种情况就是代表一个有大小的数字: 三种解法
O( n * log(n) ) : 直接暴力递归, 每次找当前串中最大的部分 然后划分左右部分,左边计算完乘以中间最大值再加上右边部分, 当当前串长度为1特判。零也要特判,(比如一百零一里的零其实没啥特殊意义)
O( n ) : 单调栈从左到右扫一遍, 出栈时特殊处理一下,把栈顶元素累加到当前值上,最后再把当前值入栈,结果就是栈内元素累加和。
O( n ) 空间复杂度小一点的 : 从右到左去扫,记录最大值,累加。。。
面试都过了。。但是offer还要等。。不清楚得到了面试通过邮件算不算口头offer了。。 (如果涉及私密信息,私聊楼主,立刻删除)
///// 4.16更新。。收到offer了。。。刚发完面经就收到了。。祝大家好运。。
微软暑期实习面经分享
作者:JennyLQ 链接:https://www.nowcoder.com/discuss/416863?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641777238449 来源:牛客网
#微软-STCA-北京
3.1 投简历
内推,简历没过筛,没有获得免笔试资格
3.25 笔试
三道题,第一题过了,第二题过了4个case,一共10个,第三个没看。具体题目在牛客上可以找到。
4.1 hr收集面试时间,约定4.8和4.9两天集中面试
4.8 一面
自我介绍大概5分钟,简单聊了项目
给了个链接,白板写代码
算法题:
-
字符串反转:字符串中用空格分隔每个单词,空格数量至少一个,输出反转后的字符串,要求反转后单词之间的数量与之前不变。 (先交流思路,然后写代码,没问题后问测试用例怎么写,有几类。测试用例没怎么了解过,面试官提示说要考考虑非法输入和合法输入,保证非法输入下程序不会崩溃才可以)
-
机器人走棋盘:一个m*n的棋盘,机器人从左上出发,目的地是右下,每次只能向右或者向下,格子中为0表示机器人可以通过,为1表示障碍,机器人不能通过。问机器人是否可以成功从左上出发到达右下。 (交流思路,写代码,没问题后面试官又拓展,让求机器人从左上到右下的路径条数,在上题代码上修改。改完后问除了递归解法,还有没有其他方法,说了dp,面试结束)
4.10 二面
(本来是4.9二面,hr临时通知面试官有事,约明天或者之后重新发面试链接)
算法:求无序数组中前K个最大值。
用最小堆求了前K个,面试官要求不用优先级队列,自己写一个最小堆,不会 转而用冒泡写了另一种解法,面试官要求优化时间复杂度,一次遍历,又回到了最小堆 面试官拓展说,求海量数据中前K大元素,内存空间不足。回答了桶排序,面试官要写出代码,因为思路本身就不清晰,代码没写出来时间就到了,估计没戏了。
4.16 三面
自我介绍,讲项目(大概半小时),然后做题。
算法:(1)输入excel中一个列号的字符串(e.g. “AX”),输出是第几列。 (2)输入一个字符串,输出去掉所有空格后的字符串,要求不使用额外空间。 (感觉整体比较简单,本来以为微软面试就结束了,结果hr小姐姐来电话约下周面试时间,下周还有一次,希望好运呀)
4.21 四面
自我介绍,聊项目,做题
算法:
(1)逆时针反转矩阵:先垂直折叠翻转,再对角线翻转,两次交换
(2)二叉树中序遍历下一个节点:这个刚开始没理清思路(虽然之前做过),跟面试官说了两遍错误的思路,第三次才说清楚,然后写代码。 还有时间,面试官提出第一题能不能一次交换完成反转,没思路,面试官给了提示,类似于剑指offer上逆时针遍历矩阵的思想,从外围向里依次旋转,写代码。代码写出了外层循环,中间具体交换没写,时间到了,结束了。 (下午5点左右收到oc,告知一周内发offer)
还没收到offer,等的好捉急。。
微软苏州SWE一二三面过经
作者:Five1号 链接:https://www.nowcoder.com/discuss/395852?type=post&order=recall&pos=&page=1&ncTraceId=&channel=-1&source_id=search_post_nctrack&gio_id=2A1F30AE963041153EE3DCD91FE26142-1641777238449 来源:牛客网
STCA是一二面平行,过了一个就进lead面。
一面
1.英文自我介绍
2.问了几个JAVA基础问题
3.算法题:设计一个数据结构以O(1)时间复杂度实现4个方法:
void addWordOnce(string word);
void removeWordOnce(string word);
int GetMaxOccurredWord();
int GetMinOccurredWord();
一面题还是比较难的,说了自己的错误思路后,在面试官引导下有了正确(maybe)思路,写了变量定义,第一个方法刚写了两行就断开了白板连接,并且***也连不上。。就口述实现,细节比较繁琐,不写成代码比较容易漏掉情况。一面挂,一是题确实难,二是连不上只能口述也太难受了。。
二面
1.斐波那契数列分析时空间复杂度,问我系统栈压栈顺序,这块我说不太确定,面试官人很好说我下去可以了解一下。
2.拓扑排序:题目类似LC课程表,想好之后把思路说了下,面试官说思路对的,开始写的不是最优,问怎么优化,然后想了一会说出了优化思路,感觉MS比较重视follow up,而不是一上来写最优解。
3.最长递增子序列
都是原题,天不绝我。。
三面
lead面 1.中文自我介绍
2.实习项目问了比较久,比较细,问有没有可以优化的地方
3.JVM垃圾回收一些问题
4.Linux命令 shell语法的一些问题(项目有用到)
5.算法:最大子序和(子数组)
easy题,但是比较经典。
这个我刚开始比较紧张,想着区间dp,说了一下,然后复杂度是O(n2),后面我说我想下效率更高的解法,他说不用返回子数组,只要最大和,我就想到了一维dp,就写了,写完我看可以压缩到O(1),就边说边改。白板写代码corner cases一定要注意,最后还让我写几个test cases。写完面试官很满意。
总结
感觉微软是比较看重你思考优化的过程,思路一定先说出来,面试官认可了再写代码,写完也可以自己写一下test cases。
二三面手撕代码都是原题,只能说我欧气太足了哈哈哈,三面中午面完,下午五点前就出结果了,MS效率还是很高的,HR说三面过了后面就offer审批了。
PS: MS面试属实玄学,我每次看到大佬们的面经都看的怀疑人生,只能说多刷题多总结,不要期望每次都碰到原题,提高自己的算法思维能力才是王道。
PPS: Luck Game
Java 实习应聘总结 & 面经分享,感谢牛客网
Microsoft
一面: 项目介绍,聊项目的具体内容;
问 Java 的各种底层相关内容(内存管理,类型系统,GC,JIT,……)
然后和 C++/C# 做了一些比较;手写一个算法题。
二面:手写两个算法题;用英语介绍一个项目并回答相关的问题。
三面:英语尬聊,职业规划之类的;给出一个需求,做分析和设计,并简单地写出部分代码实现。