微软上海暑期实习C+AI 一面二面三面面经
两轮是平行面,只要通过一轮就可以进终面,都是英文面试,有且仅有最后的反问环节可以说中文
一面:
英文自我介绍,详细聊实习中的两个项目,详细问各个部分用了什么技术,聊实习的收获,聊学校实验室是做什么的,实验室的课题是什么。
算法题:2080. 区间内查询数字的频率 一开始用的哈希表+前缀和差分,后来优化成哈希表+二分查找,本地ide共享屏幕的,要写测试用例,输出,自定义类,成员变量构造函数什么的,比leetcode麻烦点
二面:
英文自我介绍,实习项目介绍,问细节,项目中http发送request服务端返回response,那么如果任务执行失败怎么办,怎么查看,答有:前端平台记录了log信息和任务status
算法题:34. 在排序数组中查找元素的第一个和最后一个位置
一面:
英文自我介绍,详细聊实习中的两个项目,详细问各个部分用了什么技术,聊实习的收获,聊学校实验室是做什么的,实验室的课题是什么。
算法题:2080. 区间内查询数字的频率 一开始用的哈希表+前缀和差分,后来优化成哈希表+二分查找,本地ide共享屏幕的,要写测试用例,输出,自定义类,成员变量构造函数什么的,比leetcode麻烦点
二面:
英文自我介绍,实习项目介绍,问细节,项目中http发送request服务端返回response,那么如果任务执行失败怎么办,怎么查看,答有:前端平台记录了log信息和任务status
算法题:34. 在排序数组中查找元素的第一个和最后一个位置
二分查找很快写出来了,面试官:I didn't expect that you solve the problem so quickly,然后问如果这个数组是一个数据流的形式,怎么做,我只说了从左往右O(N)遍历,后面就是介绍部门情况,技术栈,前端还是后端,实习生的安排是怎么样。面试官介绍了很多,还讲了转正流程
三面:
先是英文自我介绍,还是全程英文交流,面试官竟然问我这是第几轮面试……
问研究生为什么转了专业,我就说兴趣原因,问喜欢做算法还是开发,我说开发实现某个功能会比较有成就感
然后问现在在哪里,我说在上海字节实习,问实习多久了,问最近参与的项目是什么,我详细介绍了一个项目。项目聊了很多细节,前面都是介绍性质的,基本是我准备过的仔细说一遍
然后给我想了一个场景,如果多个任务同时访问一个临界变量是否会产生冲突,要怎么解决问题。
划知识点:critical resources 临界资源/变量,我反复确认才明白这个词的意思
解决方法:死锁的解决方法里面有几条是可行的,哲学家就餐问题解决方法类似的,但是提问是根据我的项目场景问的,所以我带入项目里聊了一下实现,面试官说是可行的,还帮我补充说了一种方法
算法题:Bool AreEqual(stringA, stringB) Given two strings strA and strB, return if they are equal. # means a backspace character.
挺简单的,开两个栈或者数组都可以,不过这样需要O(n)的时间复杂度,写了一版之后让优化,又写了一个双指针的,这个只能是从右往左遍历的双指针,再加一个记录‘#’个数的变量,遇到‘#’加一,遇到字母减一,如果该变量为0才比较相应位置的字母是否相等
然后一开始有一些重复可复用代码,面试官问应该怎么做,我说可以merge into a function,追问好处是什么,一个是代码简洁,另一个是改动的时候只需要改动函数就行了
后面是聊了一下部门的各种情况
如果发offer了我回来说一声
更新:已offer,但由于一些原因拒了
#暑期实习##春招##实习##面经##面试流程##C#(17531)##面试题目##微软#