阿里巴巴菜鸟网络电话面试

其实在这之前我一直不知道菜鸟网络到底是个什么东西。。。只是知道应该算是阿里的子公司吧。不过既然有师兄的内推,抱着不去白不去的心态就投简历了。第二天(今天)就接到了面试电话。面试官听声音好年轻的感觉,像一个同学的声音。他先让自我介绍了一下,问本科和研究生学过哪些课程,然后介绍现在做的课题。因为和计算机不太相关,所以解释了半天他也听不懂,囧死。然后他问了一个很简单的题目。说因为菜鸟在做物流这一块,如果现在有50个包裹,30个站点,要求每个站点都至少放一个包裹,那么快递员怎么样走是最快的。他刚问完我就说"我的第一反应是最小生成树”。他没吱声,然后我花了几十秒在思考这个方法的正确性。可能有些紧张吧,要是平时见到这种题都不需要考虑的,我在思考的时候把思路也讲了出来,说30个点建个图,如果路线最短应该有29个边且它们的和最小,这就是最小生成树。他表示这个思路是对的,然后问我具体怎么实现,我说两种算法。prim算法和Dijsktra算法(其实这里说错了,应该是kruskal),就描述了其中的一种,每次挑最小的路径,形成环的时候就跳过。其实都是本科学的东西啦,因为考研的时候复习过所以还记得。然后他问我复杂度,这个我真的不记得了,复杂度这东西不能靠死记硬背的。我想了一下,觉得每次找最短边其实要遍历每个点的每条边的,总共30个点,每个点29条边,所以如果点数是N,复杂度就是O(N^2)。他表示答案是对的。然后又问我如果现在有10W个点,如何降低复杂度。之前也看过不少面试题,其实对于那种不是特别难的大数据问题,我的感觉就是2种思路。一种是分而治之,一种是hash。这个显然不好用hash,所以我就说可以把大图分割开来成一个一个的小图。然后每个图找最小生成树,再找图与图之间的最短路径。他问我分割图的依据是什么,说实话当时脑子比较空白。。。毕竟人生第一次面试。没想到很好的解决办法,就说可以根据点的个数来划分,比如每个子图有相同个点。他表示你的想法不错,但是应该是通过去除长度很长的边来把稠密图转换为稀疏图,我表示恍然大悟。。。然后他问我会哪些语言,我说本科学过Java,现在主要做C/C++,我都做好了回答的准备,没想到他说面试结束,让我等复试。。。。

总得来说还是有些紧张,题目其实不难,但习惯了对着电脑屏幕做题的感觉,电话面试不太适应,脑子长时间处于空白,都没法思考了的感觉。总得来说就是知识的积累和消化,如果他直接问最小生成树,那我肯定秒答,他给了一个应用的情景就需要思考了一段时间。感觉还是积累的不够多,慢慢来吧。


你可能感兴趣的:(笔试/面试)