猿辅导算法面经秘籍
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。
并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的猿辅导面经。
大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。
希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。
面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得。
其他大厂面经:国内其他大厂的面经汇总,点击查看目录。
猿辅导面经整理:江大白
1 猿辅导面经汇总资料
1.1 面经汇总参考资料
① 参考资料:
(1)牛客网:猿辅导面经-34篇,网页链接
(2)知乎面经:点击进入查看
(3)面试圈:点击进入查看
② 面经框架及参考答案:
(1)面经知识框架:点击进入查看
(2)面经参考答案:点击进入查看
1.2 面经涉及招聘岗位
(1)实习岗位类
【猿辅导语音合成算法实习】
(2)全职岗位类
【OCR算法工程师】、【视频编码工程师】、【深度学习算法工程师】、【计算机视觉算法工程师】
1.3 面试流程时间安排
PS:以上流程为大白总结归纳所得,以供参考。
1.4 猿辅导面试心得汇总
★ 一面手撕代码难度适中,面试官会不停引导;二面偏理论基础,考察了深度学习框架的使用、矩阵、概率;整个面试没有问太多项目细节。
★ python编程的题虽然很简单,但是如果平时不多练几遍的话,真的会有很多细节上处理不好!
★ 很多都是nlp、机器学习为主,计算机视觉很少
★ 项目要好好准备,和校招很大的区别是,面试官会问为什么做这个项目,前期的调研和数据支撑非常重要,这个问题回答不好的话,整个项目是没法让面试官信服的。
★ 还有项目中一些工业界常见的问题,前面提到的训练数据量不足的问题,还有模型训练时间,迭代周期的问题,如果迭代速度慢,怎么解决?
★ 关于方向的问题,工作一年还没有定型,所以不要担心换方向的问题,nlp面cv,推荐完全没问题。面试官更看重的是:基础扎实,工程实现能力强。
★ 猿辅导的福利薪资什么的不用说了,就很香。 想加入猿辅导是因为视频领域在猿辅导这样的在线教育平台的应用真的是广泛而且多样,此外面试官提到的音视频实验室正在做的东西,也和专业很符合。
2 猿辅导面经涉及基础知识点
2.1 图像处理基础
● 搜寻矩阵中的连通域个数?
2.2 深度学习:CNN卷积神经网络方面
2.2.1 讲解相关原理
● 介绍深度学习项目:
面试官主要的关注点在训练数据,毕竟标注数据是稀缺资源。这类问题要着重准备,即使面试官不问,也可以主动提,难点是标注数据太少了,然后是怎么去做数据增广的
2.2.2 手写算法代码
● 实现一个m*n矩阵中k*k的average pooling算法,不padding,strides=1?
2.3 深度学习:RNN递归神经网络方面
● LSTM的原理讲一下?
2.4 深度学习:CNN&RNN通用的问题
2.4.1 模型评价
● 模型效果怎么样;用什么评价指标;有什么可提升的方向?
2.5 传统机器学习方面
2.5.1 讲解相关原理
2.5.1.1 数据准备
● 数据集清洗做了什么?
2.5.1.2 特征工程
① 特征降维
● 矩阵分析中的奇异值与特征值的区别?
② 特征选择
无
2.5.1.3 有监督学习-分类和回归方面
① 分类回归树(集成学习)
A.基于bagging:随机森林
● 随机森林有放回无放回,为什么?
B.基于boosting:Adaboost、GDBT、XGBoost
● 有哪些常用boosting方法?
● adaboost弱分类器要加权重吗,怎么加,gbdt呢?
② 线性回归
● 线性回归的原理?
③ 逻辑回归LR
● LR的原理写一下?
④ SVM
● SVM的原理写一下?
⑤ 朴素贝叶斯(Naive Bayes)
● 朴素贝叶斯的原理讲一下?
2.5.2 手推算法及代码
无
2.6 深度学习&机器学习面经通用知识点
无
3 猿辅导面经涉及项目知识点
3.1 深度学习:CNN卷积神经网络方面
无
3.2 深度学习:RNN递归神经网络方面
3.2.1 自然语言处理NLP
● HMM维特比算法(NLP相关必考了,这里的应用点是解决识别准确率)
● Beam search 的毛病,返回很泛化的句子,怎么解决?
3.3 强化学习
无
3.4 机器学习方面
无
3.5 视频编码
● 对video codec的理解
● 为什么想做视频编码?
● 编码框架(熟悉程度和运作流程)
● 编解码器技术细节
● 图像增强的应用
4 数据结构与算法分析相关知识点
4.1 数据结构与算法分析
4.1.1 线性表
4.1.1.1 数组
● 找递增数组中第一个>=n的数字?
● 有序数组查找重复元素个数
● 找出来数组中每个元素后边第一个比它大的值?
● 二维数组回行打印?
● 一个无序有正有负数组,求乘积最大的三个数的乘积?
● 两个有序数组交集、并集?
● 数组插入排序
● 已排序的整数数组去重?
● 一个数组实现两个栈 ?
● 定长数组实现队列
● 无序数组构建一棵二叉排序树?
● 非降序数组,找与target最相近的数的下标?
● 任意一个整型数组,判断是否可以将数组分为三个区间,每个区间中数值的和相同,区间不能为空,时间复杂度要求为O(N)?
● 单调不递减数组,给一个target,找出大于等于target的下标index?
● 不严格递增数组,要求删除出现次数大于k的数字,要求不要新建存储空间?
● 给定一个整数数组,每个数的范围为[0,100],把这个数组分成两份,使得分割后的两个数组平均值相差最大
4.1.1.2 链表
● 链表m到n反转?
● 链表反转,分别用遍历与递归实现?
● 链表每隔k个反转?
● 双链表按照奇偶顺序分成两个链表,要求不要复制链表?
● 实现链表,无序链表,对链表值奇偶分离并排序,空间复杂度O(1)?
● k路链表归并?
● 链表实现队列
● 给定一个有序存在重复的值链表,使得每个元素只出现一次 ?
● 单调不递减链表,删除掉重复值?
● 链表相邻元素交换?
● 两个数字被逆序按位保存成链表,实现两个链表相加保存到第三个链表,例:3->9->9->1+4->9->1?
● 输入链表453612,target 3。输出 451236,就是把target后面的小于target的数移到target前,其余都保持相对关系,返回链表头节点
● 链表删除奇数位置的元素
4.1.1.3 栈
● 写一下栈排序
● 两个栈实现队列?
● 用一个队列实现栈
4.1.1.4 队列
● 队列实现栈(pop、top、push、is_Empty)
4.1.1.5 字符串
● 字符串形式自定义进制大数相加?
● 对字符串"ABCDE"按字母顺序的全排列,求BDACE排在全排列的第几个?并问该题的时间复杂度?
● 字符串横向改纵向?
● 字符串全排列 ,可能有重复的,要去重 ?
● 一些数,任意排列求可形成最小的值?
● 字符串中找出一个最长的最多包含K种字符的子串,输出长度,例如s=“ebecda”,k=2。最长“ebe”,输出3。
● 给定一个字符串如”aaabbcdae”,输出”a,3|b,2|c,1|d,1|a,1|e,1“
4.1.2 树
● 二叉树是否对称?
● 之字形打印二叉树,输出节点的值?
● 一个图,给定几条边,每条边有两个节点。已知它并不是一个二叉树,请判断去掉哪条边之后该图是二叉树?
● 无序数组构建一棵二叉排序树?
● 完全二叉树的最大深度与节点个数?
● 二叉树的最小公共祖先?
● 二叉树逆时针打印最外层节点?
● 输入一个数字n,构建一个完全二叉树并输出?
● 数字n,生成完全二叉树1,2,3,4,。。,n?
● 给定一棵二叉树,请找出其最长路径,并输出路径上的边的数量。如下所示,第一棵树的最长路径为4-2-1-3,长度为3。第二棵树的最长路径为8-6-4-2-5-7-9,长度为6?
● 二叉树宽度?
● 求二叉树的深度,不使用递归?
● 根据前序和中序遍历序列恢复二叉树
● 输出根节点到叶子节点路径之和为target的路径列表?
● 打印出根节点到叶子节点的最长路径?
● 第K层叶子节点个数?
● 判断一颗树是不是二叉搜索树?
● 从二叉搜索树到更大和树?
● 二叉搜索树转有序双向链表?
● 二叉搜索树第k个节点,不用中序遍历?
● 输入 二叉树,target,输出 所有从根节点到叶子结点的和为target的path
4.1.3排序
● 手撕快排?
● 实现一个不考虑转移概率的维特比,要求给出topn的路径 (现场写代码,用了堆实现的,没太准备好,写的比较乱)
4.2 算法思想实战及智力题
4.2.1 算法思想实战
● 给定一个int类型的列表(如[1, 9, 8, 8])和一个加和元素(如34),计算列表元素所组成的数字(1988)与加和元素相加后的结果(1988+34=2022,此处仅作为讲解示例,实际操作中不允许这样执行),并以列表的形式输出([2, 0, 2, 2])?
● 对于普通的孤岛问题,求矩阵中可以经过岛屿到达边界的1的个数?
● LeetCode 773:和773类似,滑动谜题
给定2*3棋盘的初始状态如
[[0, 1, 2],
[3, 4, 5]]
结束状态如
[[2, 1, 0],
[3, 4, 5]]
每一步可以使0与相邻数字交换,问从初始状态到结束状态最少交换多少步,若不能到结束状态返回-1
4.2.2 智力题
● 判断五子棋输赢,不用考虑复杂度?
4.3 其他方面
4.3.1 数论
● 用二分法对一个数字开根号?
4.3.2 矩阵运算
● 行和列都是有序的二维矩阵找一个target值?
4.4 Leetcode&剑指offer原题
● Leetcode 33:搜索旋转排序数组
● Leetcode 200
● LeetCode 340:至多包含 K 个不同字符的最长子串
● LeetCode 582:杀死进程,用了DFS解决
● LeetCode 688:“马”在棋盘上的概率
● LeetCode 827:最大人工岛
5 编程高频问题:Python&C/C++方面
5.1 python方面
● 理解Tensorflow内部求导的原理吗?
5.2 C/C++方面
无
6 操作系统高频问题:数据库&线程&常用命令等
6.1 数据库方面
无
6.2 操作系统方面
无
7 技术&产品&开放性问题
7.1 技术方面
● 数据流新加入一个数据之后如何更新均值、方差,推公式?
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。