阿里蚂蚁金服-C++研发
作者:YangZY
链接:https://www.nowcoder.com/discuss/30813?type=0&order=0&pos=44&page=1
来源:牛客网
一面55分钟。
1.自我介绍。
2.面试官看了我的简历,我在上面写了一句“正在学习TensorFlow”,面试官问我是个人兴趣还是因为其他原因(我说个人兴趣)。之后问我都看什么资料,有没有实践,然后我提到了CNN,面试官接着问CNN有什么优点,跟传统的决策树和SVM相比在图像分类有什么优势。
3.默认构造函数、拷贝构造函数的作用,什么时候使用
4. 浅拷贝深拷贝的应用。
5.说一说容器算法迭代器的关系,迭代器都有哪几种,适配器有哪几种
6. 如果要用STL实现得到前k个小的数用什么函数(我答的用sort。。。),然后又问sort实现机制是什么,时间复杂度最好和最坏是多少,如果要实现最坏也是O(nlogn)复杂度的排序可以用什么(答了归并),之后让详细讲了一下归并的过程,归并的不足(空间复杂度O(n)),问还有其他什么也能达到O(nlogn)(然后答了堆排序),详述一下堆排序的过程(建堆,更新一系列过程)。
7.邮件发了一个链接过来,登录上去在线写代码,题目是用一个函数实现给定字符串,去除前面和后面的空格,比如“ ab cd ”,最后得到的结果是"ab cd",不能改变字符串的地址。写完之后,面试官说如果要测试,测试用例应该设计什么样子的。之后找到了我代码中的一点bug(我的代码对于字符串中全是空格的情况返回还是全空格,面试官的意思是说这种情况字符串中只用‘\0’就可以了),问我怎么改,最后让给出函数的时间复杂度,以及复杂度的常数项。
6.最后让我问他问题,问了一些问题,最后问了一个问题(能评价一下我这次的面试以及我应该在哪些方面再进行一下提高吗),面试官笑着说学无止境,这个问题不好回答,然后两个人一起笑了起来。。。