微软面经记我的微软8面经历
本文来自用户Accelete(站内排名346)分享,可进入力扣社区与他互动喔!背景
985本科,工作一年半,微软社招base苏州。因为我的技术栈偏向前端,所以面试中的部分问题也跟前端有关,不过微软的面试更多注重coding和测试。面试
1。6一面
一面的面试官是一个小姐姐,聊天中感觉她是非常熟悉前端的,所以也问了很多前端相关的问题。英文自我介绍项目介绍,下面的问题也更多是从项目中延伸的ReactNative运行的大致原理ReactNative有vdom吗ReactNative有几个线程,分别负责什么工作,有阻塞关系吗AppRegistry的作用前端微服务的理解前端的监控你们是怎么做的,性能监控错误监控出现线上问题时,以你的经验一般是如何定位的呢
coding编写一个组件,在input中输入文本,在给定的数据中查找相关的项目,并渲染搜索结果列表。
followup防抖渲染列表时key的作用是什么这次面试更多是对基础知识的考察,面试结果很快,当天晚上就约了后面的四次面试。
1。17二面英文自我介绍英文聊项目ES7了解吗,聊聊新特性吧bind的作用JavaScript是如何处理异步的
coding使用Promise封装XMLHttpRequest,需要在浏览器真实环境中跑起来,需要发出真实请求获得数据,建议自己寻找可用的服务完成测试。这个题目本身并不难,我觉得面试官考的是面试者能不能在有限的时间内搜集有效信息完成测试,coding中要注意错误处理。给定一个字符串,按照字符频率降序重排字符,否则按照字典序升序。例如:acba最终为aabc。
followup详细分析时间复杂度,这里有一个遍历拼接字符串的复杂度O(n),还有一个对字符集排序的复杂度O(klogk)你的算法对任意字符串都有效吗?答案是否定的,对于特殊字符其长度不一定为一个字节,那么在遍历字符串时就会不准确,详细可以看一下字符编码,这里不展开了。
1。17三面自我介绍聊项目
coding〔968。监控二叉树〕
1。18四面英文自我介绍英文聊项目思维题:在二维空间使用最少边数封闭图形是三角形,在三维空间使用最少边数封闭空间是三棱锥,那么在四维空间使用最少边数的封闭物体有多少个面。(这道题主要考推理逻辑思维,我当时给出答案可能不是正确的,大家可以思考下。)
coding给你一条链表,统计多少个节点是重复的,可以改变链表,要求在最小的空间复杂度前提下时间复杂度尽量最小。例如123151,答案就是3,有3个重复的1。
followup链表有环怎么办
1。18五面AA英文自我介绍英文聊项目
coding给定一个数字n,给定一组magicNums,都在〔0,9〕中,要求使用magicNums构成比n小的最大数字,每种数字的个数不限。
我使用了回溯,然后需要注意无法构成的特殊情况,可能有更好的解法。
本来到这里就结束了面试,后面HR反馈说面评不错,应该稳了,等HC批下来,我就准备过年躺平了。
年后HR反馈说HC没有了,我面试的比较晚,在面试过程中发出去的Offer已经把HC签完了。表示理解,也感谢HR帮忙match了新的组,遂继续面试。
与新组沟通,看了我的情况后表示之前的面得不错,只需要加3次面试就可以了。
2。18六面(换组后)自我介绍项目聊的很细,主要是问了如何实现的,为什么这么实现,有没有遇到印象比较深刻的问题,如何解决。也跟面试官讨论了各种可能的解决方案讨论了一下单元测试的相关内容
coding实现节流,要求传入一个能够控制是否立即执行的参数
followup编写测试用例自测要求测试能够自动执行,比如在CICD环境下
2。18七面自我介绍聊项目
coding:〔155。最小栈〕〔99。恢复二叉搜索树〕
做完后还有点时间,讨论了组内的业务,可能遇到的性能问题,你有什么建议之类的。
2。18八面AA自我介绍展示了组内现在做的东西,并讨论了可能遇到的技术挑战
coding:中文数字转int。例如输入一千七百八十二结果为1782
题目不难,要注意计算时的溢出问题,也要注意非法输入之类的处理。结语
经历了8次面试,虽然发生了小插曲,最后终于拿到了Offer。
可以看到微软的面试也不是只有算法,对基础知识和项目的掌握也同样重要,在此分享下我的经历,希望给大家带来帮助,麻烦点个赞哦
最后祝愿大家金三银四,面试成功,收割Offer。
BY
本文作者:Accelete
声明:本文归力扣版权所有,如需转载请联系。