【阿里巴巴】C++岗-春招上岸附上面经

春招准备
由于春招准备的比较晚,错过了鹅厂提前批的大浪,在提前批尾巴投了简历刚被捞起来就被放弃面试(也许简历太菜了),然后就开始准备正式批了。

实习投了阿里(不知部门)和腾讯(TEG),阿里卒于四面,不知是什么面,腾讯今天上岸,也有运气参半吧,感谢牛客的小伙伴们的面筋,其实对比后发现自己的面筋有点low,等oc的小群里实在让人感动,所以还是分享一下吧,万一有一点点用那也满满足啦。阿里由于时间太久而且没做记录,这里就不贴了,下面是战线比较长的鹅厂面筋了,大佬们莫笑哈。

一面(4月中旬,电面,40min)

因为笔试很久之后没动静,突然被call,很紧张,下面是提问:

说说你的项目(是的,没有自我介绍)
项目里的线程池怎么设计的?
谈一谈你说的异步流
项目里你遇到的技术难点,怎么解决?
纯虚函数了解吗?说一下
协程了解吗,为什么有了线程还要协程?
说一说线程同步
你对c++11的了解,新特性?
说一下STL的空间配置器(两级分配)
用过redis吗?说说你的理解
数据库的三范式?
malloc了解吗,说一说
说说auto_ptr和shared_ptr区别?
堆排序怎么维护堆,时间复杂度多少?
说说其他排序算法的时间复杂度,多路归并?
有什么要问的吗?
这里我感觉我回答得应该一般,面试官也给了很多提示,很感谢,接下来就是十多天的等待。。。

二面(4月下旬,视频,1h 20min)

算法题:大数阶乘,参考以前刷题的思路写

“`C++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
int n;
string ans;
vector<int> tmp(10000,0);
tmp[0] = 1;
while(cin>>n){
if(n == 0 || n == 1)
cout<<1<<endl;
int sum = 0;
int digit = 1;
for(int i=2; i<=n; i++){
sum = 0;
for(int j=0; j<digit; j++){
int temp = tmp[j] * i + sum;
tmp[j] = temp %10;
sum = temp/10;
}
while(sum){//sum不为0表示有进位
tmp[digit] = sum%10;
sum/=10;
digit++;
}
}
for(int i=digit-1 ; i>=0 ; i–)
ans.append(to_string(tmp[i]));
cout<<ans<<endl;
ans.clear();
}
}
“`

思考题:大致是倒水那种变体题目,具体我记不太起来了,反正捣鼓了半天面试官笑了,我也笑了23333
说说epoll的数据结构,大致是双链表和RB-Tree
说说你看过的网络库
LT/ET模式的区别,如何选取
STL熟悉吗,经常用哪些,结果我说了vector和map
上面两个常用哪个,我说了vector,然后被问了map
了解编译优化吗,说说看
说说你的项目
然后是一堆项目的细节
了解分布式吗,我说的不了解(逃)
linux熟悉吗,shell脚本写过吗,awk用过吗?
有什么想问的吗?
二面因为算法花了一些时间,然后项目也深挖了一下,时间就稍微比较久一点,之后过了五一变成了hr面试

HR面(五月初,电面,30min)

HR面试比较常规,不具有参考意义就不罗列了,小姐姐人很好,隔了一天变成已完成。

总结
其实我感觉我的问题属于牛客上我见过的面筋里面很常规的了,但是自己感觉答得仍然很一般,所以我说运气参半吧,感觉很重视基础,面试官也会给予适当提示,很有耐心,体验很好,当然面筋只是参考,每个人情况不一样哈,春招的尾巴被抓住了还是很开心的,所以大家准备好了一定要早点投简历,那样机会会多一些吧,个人拙见,最后祝大家都能拿到心仪的offer!

最后特别鸣谢 在线做法oc群,群主是面hr岗的小姐姐,里面都是神仙,全是超越姐姐,在里面度过了煎熬的等待,群满了就不放二维码了,祝大家都接到oc。

以上。

发表评论

后才能评论