【微软】-Software Engineer暑期实习一面+三面面经
非科班,985本硕,有个个人练手牛客论坛项目
3.7 一面
面试官是位男生,开了摄像头,很温柔
- 自我介绍(中文)
我比较简短3-4句话说完了,提了句自己的实验室项目,导致。。 - 首先问了实验室项目,一个联盟博弈,跟互联网没有关联,就用了智能算法,相当于跟面试官聊了10min天,让我倒是不那么紧张了;
- 基础
1.垃圾回收(GC堆),我答得一般,讲了新生代老年代
2.http和https区别,太久没看了,直接说不太会- 介绍一下堆和栈
我讲了讲先入先出,后入先出,有让说一下平衡二叉树,完全二叉树,二叉搜索树,答得还好 - 编程
- 排序算法有哪些,十分稳定,只是说了说,没让谢。
- Top k,我先说优先队列,写了写,有些漏洞,在面试官提示下改好了;
又问有无其他方法,我说快排,稍微说了说,没有进一步写出来
3.有序数组,做子序列旋转后,找target
leecode 原题,但我没印象了,二分查找写了半天,r,l,mid 三者怎么判定给搞蒙了,直接紧张了,然后面试官看时间也不多了就让我停手大约说说思路。
我以为一面要凉了,但没想到过了,感谢面试官!当晚收到3.11 lead面邀请
- 介绍一下堆和栈
3.11 三面
面试官是位男生,没开摄像头,也很温柔
- 自我介绍(中文),我很简短
- 看我简历上写了设计模式,于是问设计模式,我答单例和工厂
然后让我说如何实现单例,我说的很简单,然后问缺点及如何解决,答构造函数加锁,有问能不能再优化,答不会了 - 又问项目用了git,那解释一下,git merge 和 rebase 区别,我只能说我再项目中IDEA直接用了,这俩命令不熟悉
有无AOP,答,面向切面编程,我在项目中主要在service方法调用时,在控制台输出一下日志, - 基础
- 反射是什么,有什么作用?
- 内存,新生代老年代,elden from to,标记 清除 复制算法,都说了说
- volatile, 我答的不行,不太熟练,只能说看到过他跟synchronized 区别,但没记住
- 编程
1.口述:判断链表是否有环,我答快慢指针,又问快指针只能走两步吗,还是三步也行,我想了想不太肯定的说好像没限制,在null之前都行吧,也过了,没说对不对
2.口述:判断是否为二叉搜索树,我思维僵化了,说了半天递归啥的,面试官提示二叉树遍历方式有哪些,答前中后序,层序,然后又说只需中序遍历,看是否为单调序列即可,也过了
3.口述:数组中有1个数只出现了一次,其他数出现了两次,如何找出?答直接抑或,
又问有两个数出现了一次呢? 答,我只能用本方法计数什么的了,面试官说都知道,还有别的方法吗?,我就没答出来
4.编写:数组中,有两个数占比超过1/3,找出这两个数?
有点印象的是单个数超过一半,然后摩尔投票,2数我想了想,先说了下思路,到判断为非记录数a,b了,又晕了,不知怎么对计数处理。又说排序,面试官提示之前思路没错,我又想了想,都超1/3那都4不就行了,然后写了出来,跑了俩测试,成功了,就过了
反问时间:问面试的怎么样,面试官答,在他看来还可以,不然也不会30min就结束了,我心放松了,然后又聊了会学校工作氛围之类的,随意聊了会天。