微软2022暑期实习一面面经
今天上午10点刚面完的。刚进入会议的时候先是闲聊了几句,面试官给人的感觉很亲和。接下来就是正题了。
自我介绍
先是让我自我介绍,我问了一下是中文还是英文,面试官说都可以,然后我就中文了。虽然准备的英文没用到但还是很觉得很幸运,英文太容易紧张了。先说了学校专业,然后简单介绍了做过的项目。
项目和八股
让我详细讲了一下我的项目,可我只会吹吹表面功夫啊。然后面试官就开始问项目的细节。
- MVC是怎么分离的;
- 怎么保证不被外网访问的;
- 怎么设计每个使用人员的权限的;
- MySQL用的什么搜索引擎;
- MySQL的索引是怎么实现的;
- 关系数据库和非关系数据库的区别;
还问了我的论文写的是什么。
对于我懂点的问题就说一说,对于不会的我就直接不好意思不太了解了。面试官很和蔼,对于说不出来的他说没关系没关系。
算法题
接下来就是算法题了。
做题之前竟然又问了点八股(因为和题目相关):
说一下IPV4的格式;
说一下IPV4和IPV6的区别;
(呜呜呜我忘了看ipv6了)
然后口述了题目:给你一个list,里面存的是字符串,每个字符串都是IP地址,让从大到小排序。从高位到低位往下排。例如"192.168.10.0">"168.192.1.10">"168.192.1.8"。
面试官让我先想一下思路不着急写代码。
我一看这题目好复杂啊,我还要处理字符串我还要比较我还要排序。
然后我讲了一下,写一个Arrays.sort(),用匿名内部类的方式给他排序。面试官问时间复杂度。我本意是直接调用Java的sort接口,我自己不去具体的排序,我只需要比较大小。既然这么问了那我只能说一下那些常用的排序算法的性能比较了。然后面试官让我写一下快速排序,真是幸运啊,一次性写对了,然后让我测试一下,并解释一下代码。
这时候时间还剩10分钟不到了,面试官说回到之前的问题,问我可不可以每两个ip比较的时候只比较一次(因为ip分四段,高位相同要比较低位,所以常规的话要比较四次)。我说可以把ip转成二进制串来比较,这样的话每个ip就变成一个数了。面试官说思路是对的,他问我怎么存,我说用int存,他说可能会有问题,我想了一下应该用unsigned int存,省去符号位的麻烦,他说对的。
这时候时间基本上到了,让我有什么问题可以问一下。
然后就结束了。
整体感觉
面试官很亲和,让人放松,交流不尴尬。做题的时候会引导你思考。
明天二面,祝我顺利!!!
#微软苏州实习生面经##微软##面试题目#