蚂蚁集团算法工程师面试

上一轮被阿里拒绝之后之后又被打捞起来开了新的一轮😇

笔试

前面做过了,直接写面试。

面试

一面

形式:电话。

自我介绍


Q:学啥课?
A:操作系统、组成、网络啥的都学,也选了些选修课。
Q:准备考研吗?
A:不了,想准备留学。但如果有offer就先工作。
Q:你一个女生为啥会对算法竞赛感兴趣?
A:大一听了学校ACM基地的宣讲,觉得很喜欢这种用各种数据结构算法解决问题。
Q:现在还在参加吗?
A:下个月有个区域赛和一个天梯赛,打完这俩就退役了。
Q:哈哈,退役。
A:(?有这么好笑)

数据结构

Q:排序?
A:冒泡、选择、快排、归并等。
Q:堆排序?
A:因为用二叉树所以也O(nlogn)。
Q:堆?
A:完全二叉树,分小根堆与大根堆。

操作系统

Q:进程与线程?
A:进程是资源分配的最小单位,线程是CPU调度的最小单位。进程包含线程。
Q:调度?
A:先来先服务、短作业优先、时间片轮转。
Q:如何避免死锁?
A:说了信号量,加锁。

网络

Q:协议?
A:TCP/UDP/http这些么?
Q:TCP与UDP区别?
A:有/无三次握手,是/否可靠。
Q:浏览器打开baidu.com?
A:梅开了不知多少度了

算法

Q:从n个数里找出最大k个?
A:先排序再先前k个、冒泡只排前k个、大小k的数组保存当前最大k个、大小k的堆保存当前最大k个。
Q:讲一个参加竞赛的题、用到的算法?
A:我这ACM-ICPC是每次比赛有13道题,每道都不一样啥都有啊。思考ing……说了线段树求一段数的和可以优化时间。

反问

Q:这个岗是做什么的?要用到什么知识?需要机器学习和大数据么?
A:蚂蚁集团-金融核心平台部,花呗借呗理财之类。本科生的话就课内知识就好,主要是需要仔细和认真。

总结

很好,问的都是我会的。顺利过关。

二面

形式:电话。

自我介绍


Q:比较有代表性的竞赛?
A:ACM-ICPC,算法题各种各样的都有。
Q:考研?
A:不了,有offer先上班,无offer就留学去。
Q:想申什么?
A:港科大的大数据,在学雅思,还选了个大数据方向的选修课。

数据结构

Q:红黑树?
A:一种带色的AVL树,根和叶子黑,红的儿子是黑,每条到叶子的路上的黑结点一样多。c++的map是用这实现的,用来查找。但是实际做竞赛时候很少自己造轮子就直接调map用。
Q:链表和数组?
A:用数组多,因为链表操作比较麻烦,一般就直接调用STL里的vector、stack、queue使不自己建的。链表方便插入删除,数组方便修改。

数据库

Q:B+树?
A:有B+树的有哈希的,具体内部实现了解不多,因为上课也是主要讲用法原理讲得不是特别深入。

操作系统

Q:死锁?
A:两个进程A要用B的结果,B要用A的结果。
Q:如何实现?C++里用什么表示要共用的资源?
A:做过但具体语句忘记了QAQ,就形成一个循环等待的场景。资源比如内存里的?变量?

面向对象

Q:多态如何实现?
A:一个父类由多个子类继承,每一个子类可以把函数写成不一样的。(但他好像觉得不对)
Q:虚函数和纯虚函数区别?
A:哇呀呀呀咋又问这个,上周查过的又给忘了…… 用是肯定用过,用的时候没注意它叫啥。
注:虚函数是写一部分,纯虚函数是函数定义后面就写个=0。

项目

A:讲了我的L1brary
Q:你说用的存储过程保存的每个步骤,那为啥这直接写在程序里?
A:显得代码少一点有条理……区别不大写C++那里也行。
Q:比如如果人特别多,开学有好多学生同时来借书?
A:那存储过程要考虑一下可串行化,不能让一个事务影响另一个,就像操作系统的进程一样。
Q:前端用的啥?微软的WFA?
A:开始打算用,但我电脑是苹果的不太方便就用Qt搞了,做完Windows的mac都能用。
Q:是规定的还是可自选?有没有同学做Web?
A:C++/C#/Java都行的,Web有人做但我对前端了解不多所以选了我熟悉的。
Q:给你一个Java项目要多久做完?
A:取决于多大、用的库是不是我熟悉的吧。像我现在在做的大数据就要用Hadoop用Mapreduce是我没接触过的,我就要先看文档学一下;竞赛里比如需要超过long long的大数类我可以很快写出来因为大数类是我比较熟悉的。

反问

Q:具体需要哪方面的知识?Java吗?需要人工智能机器学习之类吗?
A:就熟知操作系统、网络的基础知识能运用就好。
Q:我这岗位是算法工程师嘛,想问问是需要哪些算法呀?是不是和我在竞赛中接触的不太一样?
A:这里是和后台开发区别不大,竞赛那些用的不多。

总结

聊得还行,进入下一波等待。

三面

形式:加了钉钉好友、电话面试。
Q:这是最后一次面试啦(叫交叉面好像),之前两次看你都表现很好,之后再商讨下之后给发offer。
A:!!!哇谢谢🤗这次问什么呀?还是问技术吗?
Q:不问技术了,问问去杭州可不可以?
A:可!
Q:读研?
A:梅开二度
Q:什么时候来实习?
A:6月末到7月初。
Q:算法工程?
A:二面面试官说和后台开发区别不大。选的时候喜欢算法就投了个算法,优先算法,做后台项目也行,能学到很多东西。

总结

这速度也太快了!
一面当天下午问我要不要二面,给推到了第二天之后,第二天下午刚面完就来了三面。
三面第一次遇到小姐姐HR。
算是OC了,快乐!

更新1:发意向书了,岗位换成了研发工程师Java。
更新2:不断被催着去体检,不断被一面面试官催赶紧来上班。
更新3:西安的体检点在爱康卓悦,阿里还给办了VIP,不用排队体验很棒。
更新4:得到正式offer啦,限3天时间签。


之前鸽了腾讯2次(一次没声一次在我上课时候打,嗯?),要是还有机会就也接着试。
补:机会来了,明天先更腾讯面经

赞赏