微软C++社招面筋分享
一面:
1、首先是大概聊了聊简历上的东西。
2、随后是对方要求你使用英语进行自我介绍。
3、接下来就是英文问答环节:
①Tell me something about your daily work.
②What if you get a hard problem,how you gonna solve it?
③Your hobby?
④Can you picture some episode about season 8?
4、请说出二分查找的实现思路及时空复杂度。
5、快排听过吗?他是怎么实现的?
6、如果是非递归,你会怎么实现?
7、如果是单链表的快速排序,你怎么做?
8、以前参加过ACM吗?有什么收获?
9、我看你简历上的项目有用到关于protobuf的东西,而你自己也有写序列化反序列化的实现,能介绍下吗?
10、目前工作主要是做客户端开发多一些吗?有接触过搜索、推荐方面的东西吗?
11、你有什么问题想问的吗?
二面:
1、先做下自我介绍吧?
2、以前的公司的一些情况。
3、然后说了一些公司情况,产品线等。
4、然后看是聊简历上的项目,问有遇到过什么技术上的难点吗?
5、现在多线程掌握的怎么样了呢?
6、进程和线程的区别。
7、线程都有哪几种状态。相互之间的转换关系能画一下?
8、多线程有什么好处?
9、死锁听过吗,死锁发生的条件是什么?
10、生产者-消费者的PV操作伪代码。
11、我看你还有参与开源项目,能说下这个吗?
12、手写一下快速排序吧,我看你参加过ACM,所以用非递归实现一下。
13、有k个有序单链表,怎么合并成一个有序单链表?
14、我发现你特别喜欢递归,参加ACM竞赛也会用递归吗?
15、你觉得递归程序容易维护?那如果数据量非常大怎么办?
16、一般程序中栈大小是多少知道吗?
17、嗯,那你写一下代码吧,不准用递归。
18、你这个时间复杂度是多少?
19、有办法优化吗?
20、算法题:文件A包含有100万个由搜索引擎统计的用户搜索关键字(简称query),比如protobuf,microsoft apple google,iphone 8等等,每个query由一个或多个单词组成。文件B包含1000万个从twitter上爬取的用户说说,假设所有的说说都是不超过140个单词的句子,每个句子有一个唯一的ID号,现在对于任意一个句子,假设它包含了文件A中任意一个query,那么我们就说这个query和这个句子具有相关性。请你找出文件A中的所有关键字对应的说说ID号。
21、有办法优化吗?你尝试优化一下。#社招##微软##C++工程师##面经#