暑期实习-苏州微软STCA部门面试
面试前
2.7号内推投递免笔试,2.11填意向问卷,2.17面试邀请
一面:2.28
一面是个比较好说话的小哥。
自我介绍:说可以用英文也可以用中文,那当然是中文介绍了
项目:小哥不是做大数据的,要我从业务角度和他简单介绍一下简历上的数仓项目,并且说一下项目的亮点。
算法题1:植树造林。给一个数组,如[2,4,5,6],每一个数字代表该区域有几棵树。现在可以选择种一棵树,也可以选择将一个区域的一棵树移动到另一个区域,两种操作代价都是一,求使得所有区域树个数一样的最小代价。
算法题2:烟花大会。给一个字符数组,如['e','l','f'],'e'代表游客进入会场,'l'代表游客离开会场,'f'代表会场放了一次烟花,需要注意的是,先进入的游客会后出来。现在给定一个字符串,如"eflefefll",求每个游客分别看到了多少次烟花。
反问有没有做大数据的组,说365那边做大数据的多,但是面试是部门混着面试的。
二面:3.2
二面是个自信的暴躁老哥。
自我介绍
项目
算法题1:给定一个简单的链表,求链表中所有节点值的和。写完说这题没这么简单,给我提示说每个节点值可能很大,我问改成long可以吗,他给定假如这是一个2g内存,32位操作系统,要我算一下总共能存多少个链表的结点...
算法题2:在刚刚那题基础上,假如链表有环,算一下所有节点的和。然后要我用公式推一下,为什么从第一个相遇点,让一个指针从头走另一个指针同样速度继续走,就能在成环点相遇。
算法题3:将前面两个问题做一个整合,在不清楚链表是否有环的情况下,计算所有节点值的和。
时间不够没写完,老哥急着下线也没来得及反问..
三面:3.4
三面是个比较好说话的老哥。
自我介绍
项目:问了难点亮点,也具体问了数据来源,每个组件分别用来做什么事情。
算法题:有几个0-9之间的幸运数字,如3,5,7,现在给定一个数,想要将其改为不大于该数字的全部由幸运数字组成的尽可能大的值。这个数可能会非常大,所以要用字符数组表示。例子:764 -> 757,712 -> 577,231 -> 77
反问面试官的组是不是做大数据的,他说他是365部门的,主要做的是分布式系统,可能会用到一些大数据的组件。
后续
三面题不难但没写出来,所以3.9被发了感谢信。
总的面试体验还是很不错的,微软非常重视算法题,其次是项目,八股文不怎么考查。