微软暑期实习Explore Program面经(已Offer)

申的是面向低年级学生的Software Engineer Intern-Explore Program

我的时间线:

1.21 填写问卷

2.12 收到笔试邀请

3.10 收到面试邀请

3.14 收到面试时间确认邮件

3.21&3.23 各一场面试

4.2 收到Offer Letter

一面3.21:自我介绍-算法题-反问环节

上来让自我介绍一下,我没怎么准备所以就简单说了一下我的情况,接下来就发给我一道算法题做。

题是英文的,不难,大概是 给定一个数字数组,求其中每一个数字到与它相同的数字的距离之和

example input: [1,2,3,2,1]

example output: [4,2,0,2,4]

我一开始思维有一点混乱,面试官让我在纸上写写,理一理思路,然后就闭麦了。我打了一会草稿之后整出了一个两次遍历的O(n)算法,跟面试官说了一下,面试官觉得可以就让我写了。

debug完了之后时间差不多了,就到了反问环节,然后面试结束。

个人觉得这个面试官蛮和蔼,期间比较长的时间闭麦,一直在写东西,没有我听说的那种很注重交流,反而更注重思维逻辑和代码逻辑以及代码能力。

二面3.23:自我介绍-介绍项目-算法题-反问环节

这个面试官全程没开摄像头,看不到表情让我有点点小慌。

上来也是让自我介绍,着重强调如果有项目或者实习经历可以讲一下,我讲了一个大作业项目,面试官问了我在项目中实现了什么功能、遇到的问题以及解决方法、在项目中收获了什么、有没有什么到最后也没有解决的问题、这个问题是怎么处理的

接下来的算法题比一面的还简单,就是给定序列,多组询问 l,r ,问 [l,r] 区间和,一个前缀和就解决了。然后面试官问我有没有边界情况没有考虑到。最后是考虑了正常情况、l>r、l<0||r<0、l>len||r>len。

然后让我把这个扩展到二维,即矩阵中小矩阵的和,其实也是个前缀和。

我写到 num[i][j] = num[i-1][j] + num[i][j-1] - num[i-1][j-1] 的时候,面试官问我了一下这个式子的意义,我共享了mspaint讲了一下我的思路,然后就继续写到写完。写完主体部分之后,面试官说,边界情况的处理不用写了,口述一下就行,然后算法部分就结束了。

然后反问,面试结束。

这个面试官跟第一个注重的方面明显不同,第一个面试官注重逻辑,这个注重细节和边界。

全程无八股,两轮面试官都是温和的小哥哥,都很nice不会施压,没有思路的话会给你一些提示,对算法能力要求较高(其实也不高,题都不难)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值