蚂蚁金服一面
已经第N次面阿里,从本科开始到现在研究生,实习面试,应届面试,每次都是阿里虐我千百遍,我视阿里如初恋。7月31号下午接到一个北京的电话,对面是蚂蚁金服,约了一下面试的时间,8月2号上午11点到12点面试。面试岗位是研发工程师C/C++,整个一面55分钟。
1.自我介绍。
2.面试官看了我的简历,我在上面写了一句“正在学习TensorFlow”,面试官问我是个人兴趣还是因为其他原因(我说个人兴趣)。之后问我都看什么资料,有没有实践,然后我提到了CNN,面试官接着问CNN有什么优点,跟传统的决策树和SVM相比在图像分类有什么优势。
3.之后问我擅长的语言,我说C++,接着问了默认构造函数、拷贝构造函数的作用,什么时候使用,还有浅拷贝深拷贝的应用。
4.之后开始问STL,说一说容器算法迭代器的关系,迭代器都有哪几种,适配器有哪几种,如果要用STL实现得到前k个小的数用什么函数(我答的用sort。。。),然后又问sort实现机制是什么,时间复杂度最好和最坏是多少,如果要实现最坏也是O(nlogn)复杂度的排序可以用什么(答了归并),之后让详细讲了一下归并的过程,归并的不足(空间复杂度O(n)),问还有其他什么也能达到O(nlogn)(然后答了堆排序),详述一下堆排序的过程(建堆,更新一系列过程)。
5.邮件发了一个链接过来,登录上去在线写代码,题目是用一个函数实现给定字符串,去除前面和后面的空格,比如“ ab cd ”,最后得到的结果是"ab cd",不能改变字符串的地址。写完之后,面试官说如果要测试,测试用例应该设计什么样子的。之后找到了我代码中的一点bug(我的代码对于字符串中全是空格的情况返回还是全空格,面试官的意思是说这种情况字符串中只用‘\0’就可以了),问我怎么改,最后让给出函数的时间复杂度,以及复杂度的常数项。
6.最后让我问他问题,问了一些问题,最后问了一个问题(能评价一下我这次的面试以及我应该在哪些方面再进行一下提高吗),面试官笑着说学无止境,这个问题不好回答,然后两个人一起笑了起来。。。
脑子最近不太好使。。不知道写的问题还有没有遗漏。。分享给大家,希望自己(++人品),自己心里还是很没底,有些问题答的稀烂。。。但愿还有二面,不要挂掉的太快。。。。
#阿里巴巴##C++工程师#