【面经】五面阿里巴巴达摩院

目录

前言:

一面 2.5小时

二面 1小时

三面:主管面  四十五分钟

四面 交叉面 四十五分钟 


前言:

这是五月我面试阿里达摩院C++开发工程师的面试记录,原载于我的牛客,虽然最后非常非常遗憾最后差一点,但是达摩院的五轮面试过程中自己学习到了很多东西,算是凉经吧,正好这段时间在复习(预习)期末,有时间整理整理,重新发表。

一面 2.5小时

不知道啥部门,不知道啥岗位,正在睡觉,没有任何预约,突然打电话约马上面试。

  • 个人背景介绍

  • 搞过中间件没(没有)

  • C和C++语言区别

  • 简述八大排序

  • 手撕快排,时空复杂度

  • 将快排的递归写法改成非递归写法

  • 手撕一个字符串字典加密

  • 手撕:

    一个有序的数组(事先不确定升降序)中混入了一个不符合次序的错误数字,请一个c函数将它找出来。 例如 89,75,56,34,54,16,10 ,9,-5输出54
  • 手撕:合并两个有序数组,只搞出来O(2N)的(双指针),卒

  • 类中自生成的函数有哪些,构造函数和析构函数

  • static的几种用法和作用
    重点怼静态成员函数,给场景判断

  • HTTP报文格式

  • C++异常处理,给了个场景题,怼了半天,卒
  • TCP和UDP的区别

  • 简述虚函数的作用和实现

  • 三次握手的过程,为什么三次握手可靠安全?

  • 进程和线程的区别

  • LORA底层实现

  • MYSQL中实现网页翻页的话怎样写SQL语句

  • 重载和覆盖的区别

  • C语言中printf中无限参数的问题,怎样实现?

  • C语言中struct字节地址对齐

  • 内存泄漏怎么避免(自己检查+工具检查)

  • Linux环境下调试的方式

  • 学过什么设计模式,简述

  • 平常看什么书

  • 自己的优点和缺点

  • 学过NLP没(没有),学过概率论没

一看表,两小多时,有点头晕。。

二面 1小时

上来面试官的气场很强,一副琢磨不透的表情(老成派)

  • 数据库常用优化方法
  • 二叉树的前序中序后序遍历
  • 线程、进程和协程
  • B+树原理
  • 红黑树原理
  • TCP三次握手的过程
  • 拥塞控制
  • 手撕快排
  • 数据库四大隔离级别
  • 死锁的产生条件
  • 怎样预防死锁
  • ACID原则
  • 分布式并发的一个啥,没听说过,卒
  • 说说你做的项目(说了十分钟,面试官面无表情说嗯嗯,卒)
  • 两道算法:

    //评测题目: n个数,每个数都不大于n,需要写一个算法,把第k大的数找出来,算法复杂度要求O(n)

    int func(vector& v,int k){

    vector temp(v.size(),0);

    for(int i=0;i

    temp[v[i]]++;

    }

    for(int i=0;i

    if(temp[i]>0){

    while(temp[i]!=0){

    temp[i]--;

    k--;

    if(k==0)

    return i;

    }

    }

    }

    return 0;

    }

     

    // 10级台阶,你每次走1步或者是2步,写个算法,把所有的走法打印出来

    // 走法示例:1111111111,22222

    vector> ans;

    vector> func(){

    vector v;

    help(v,10);

    return ans;

    }

     

    void help(vector v,int n){

    if(n==0){

    ans.push_back(v);

    }

    return help(v.push(1),n-1)&&help(v.push(2),n-2);

    }

反问:

  • 你们是做啥的?啥部门?
  • 几轮技术面?
    答:四or五轮(果然达摩院……)
  • 对我的评价?
    答:代码写的还行(暗讽前面隔离级别啥的没答全?卒)

总结:面的问题还挺基础的,远没有昨天的难,达摩院这种我这种菜鸡是高攀不起,溜了

三面:主管面  四十五分钟

  • 自我介绍
  • 为什么不读研?
  • 你怎么是99年的,是不是提前读的大学?
    我:???(这么菜会是提前读的么……)
  • 讲一个项目,一直深挖,最后叫我说出框架图?
    我以为是流程图?然后讲了十分钟,小哥好像不太满意,解释说流程图和框架图是不一样的
    卒……
    但是最后小哥安慰我说这东西很多搞技术的也搞不清楚,没事……(我:???)
  • 开源项目,开源语言,开源源码?
    我说看过Go语言,muduo……
  • 看过Redis没
    没有,卒
  • 三月有一次面试记录,记录不好,为啥
    (因为菜,卒)
  • 反问:后面还有几轮面试
    一轮交叉面,一轮HR面
  • “前提是我这边如果通过的话”
    哦哦,那没事了

总结:主管人很好,非常和蔼,和昨天的老谋深算型的面试官风格完全不一样

四面 交叉面 四十五分钟

小哥人非常好,先介绍了一下自己的来头(蚂蚁)和目的

然后是万年不变的自我介绍

重点复盘了一个大创项目和美赛的工作(看来水数模还是有点用的……)

复盘的时候问的非常详细,小哥思维也很活跃,提出了很多有意思的问题,赞

最后问了几个开放性的问题:

  • Go、Python、C++各自的特点,给了一个项目场景怎样选择语言
  • 算法工程师和开发工程师怎么选(我学B乎吹了一波算法工程师首先是工程师,小哥表示很赞同)

反问:对职场新人的建议(小哥人真好,耐心的教了我很多,感谢)

你可能感兴趣的:(C++面经)