蚂蚁金服一面

  已经第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++工程师#
全部评论
前k个小的数那个应该用multiset,利用greater实现大顶堆,空间复杂度O(n),时间复杂度O(nlogk)
点赞
送花
回复
分享
发布于 2017-08-03 23:37
sort的实现应该是插排,快排加堆排吧。这你怎么答的时间复杂度?
点赞
送花
回复
分享
发布于 2017-08-02 18:07
滴滴
校招火热招聘中
官网直投
厉害了。我c++一面到现在还没二面😂
点赞
送花
回复
分享
发布于 2017-08-02 18:34
得到前k个小的数用优先队列,实际上也是用的堆排序,维持一个k大小的大顶堆,用make_heap相关几个函数就好了,直接sort的话如果数组很大白排了那么多的元素。 要是是前k大的数的话要多加个仿函数,自定义比较大小。 楼主你有问你面的部门做机器学习吗?我也是C++岗,不会机器学习好慌...
点赞
送花
回复
分享
发布于 2017-08-02 19:17
不能改变字符串的地址。。。。以java的角度思考了好久。。
点赞
送花
回复
分享
发布于 2017-08-02 20:46
蚂蚁金服不是在成都吗?
点赞
送花
回复
分享
发布于 2017-08-02 23:50
字符串去掉空格那个是用一个指针把第二个开始的字符一个个的往前一个位置复制来实现吗?
点赞
送花
回复
分享
发布于 2017-08-03 23:38
祝楼主好运,原来是友校的
点赞
送花
回复
分享
发布于 2017-08-07 15:39
前k小不应该是nth_element()函数?
点赞
送花
回复
分享
发布于 2017-08-17 18:44
lz现在几面了?
点赞
送花
回复
分享
发布于 2017-08-17 21:35
用STL实现得到前k个小的数用什么函数。 这个貌似可以用partial_sort,其底层是用最大堆来实现的。
点赞
送花
回复
分享
发布于 2017-08-20 17:34

相关推荐

#我的实习求职记录#概述:3月28日投递,3月30日笔试(1/3),4月15日发了一面(第一个面试),电话面,主要问项目和相关的八股,没有手撕,总共50分钟,最终感觉因为项目太少,亮点不够,4月22日发了感谢信面试流程:1.面试官介绍部门和组内方向(AI)2.自我介绍3.项目不是实验室的,而是开源的、通用的,为什么?4.进程线程协程的上下文是怎么切换的?  想讲到三者的区别再讲切换,然后到进程切换时被打断5.进程什么时候切换,用什么指令符?具体指令符不清楚,提了下schedule,就绪队列相关6.多个进程可以分配同一个cpu吗?不行,多CPU对应多进程,多核对应多线程7.电脑上的进程数为什么会远超过cpu核数?只答了时间片,应该再提一下优先级、阻塞和唤醒8.通过什么信号去通知进程切换到下一个进程?不知道,讲了下对信号的理解,建议我去看汇编(感觉可能是硬件中断、时钟中断)9.线程状态?简单八股10.线程与协程的区别?主要讲了下切换11.协程的通信,协程如何切换到下一个协程?讲了IO协程调度器,管道用于通知线程取任务12.线程下协程的内存管理?讲了下内核栈、用户栈13.能建立多少个长连接,与线程数和协程数是不是有关?只与协程数有关,重新讲了下协程调度器14.线程竞争获取协程的同步机制?对协程任务队列加锁15.问到这面试官说感觉已经没什么问题了(此时才30分钟不到),于是我主动讲了下hook16.怎么监听fd有事件发生?epoll,空闲线程epoll_wait17.服务器发送响应后又收到消息,都是用一个线程处理吗?一个协程18.协程一直阻塞怎么办?定时器,超时就取消事件19.项目问完了,问研究方向,有没有其他与AI相关的项目(实验室做的项目不太行),为什么不做AI相关的而是学C++开发,能讲讲研究生对C++的认知提升在哪些方面?20.反问对实习生重视哪些方面?主要注重工程能力和算法创新能力21.最后聊了下流程、实习时间相关的,以及给了我一些建议,对项目还算熟悉,需要丰富下简历,一个项目不够总结:第一次面试,有些紧张,答的不是很流畅和自信;面试管感觉很年轻,态度挺好的,主要按他对项目的疑问去考察,会有引导,看出我是第一次面试后也给了我一些建议;对于蚂蚁来说可能重视是否做过比较好的项目,我在这方面还是很不足的-
点赞 评论 收藏
转发
4 60 评论
分享
牛客网
牛客企业服务