作业帮算法面经秘籍
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。
并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的作业帮面经。
大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。
希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。
面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得。
其他大厂面经:国内其他大厂的面经汇总,点击查看目录。
作业帮面经整理:江大白
1 作业帮面经汇总资料
1.1 面经汇总参考资料
① 参考资料:
(1)牛客网:作业帮面经-41篇,网页链接
(2)知乎面经:点击进入查看
(3)面试圈:点击进入查看
② 面经框架及参考答案:
(1)面经知识框架:点击进入查看
(2)面经参考答案:点击进入查看
1.2 面经涉及招聘岗位
(1)全职岗位类
【机器学习算法工程师】、【自然语言算法工程师】、【机器学习数据挖掘工程师】、【广告推荐系统工程师】、【nlp算法工程师】、【图像视觉算法工程师】
1.3 面试流程时间安排
PS:以上流程为大白总结归纳所得,以供参考。
其他注意点:
● 有的人是三面,有的人是四面
1.4 作业帮面试心得汇总
★ 非常抠细节,非常看重码代码的能力
★ 有些人一面上来就是三道编程题
★ 算法会问很多,看重代码能力
★ 整体来说,面试难度中规中矩,主要看重的是实习,可能是实习做过相关的业务,所以问业务比较多,机器学习基础是回答实习问题的过程中带出来的
★ 面试官都挺好的,不会刻意为难,不会的我就坦白说没有了解过,面试官都会说ok,那我们换一个,也没有因此就挂掉
★ 虽然是算法岗,也会问一些计算机网络的问题
2 作业帮面经涉及基础知识点
2.1 图像处理基础
● canny算子的原理说一下?
2.2 深度学习:CNN卷积神经网络方面
2.2.1 讲解相关原理
2.2.1.1 池化方面
● 有哪些pooling?答了maxpooling,averagepooling和global average polling。
2.2.1.2 网络结构方面
● resnet v2和resnet v1的区别?
● inception各个版本的讲解;
● mobileNet v2的实现?
2.2.1.3 其他方面
● CNN的Batch Normalization工作原理,作用是什么?预测的时候怎么工作的?
2.2.2 数学计算
● 计算传统卷积和depthwise - pointwise的计算量?
2.2.3 激活函数类
● 写一下softmax的公式
2.3 深度学习:RNN递归神经网络方面
2.3.1 讲解相关原理
● bilstm-crf原理,讲crf原理?
● LSTM与RNN的不同?
2.3.2 手绘网络原理
● LSTM画图
2.4 深度学习:CNN&RNN通用的问题
2.4.1 基础知识点
● CNN为什么比NLP能够取得好的效果?
2.4.2 模型评价
● 模型的评价指标AUC是如何计算的,ROC曲线的横纵坐标代表了什么含义?
● 如果把不平衡的训练集(正负样本1:3)通过降采样平衡后,那么对于平衡后的AUC值和预测概率值有怎样的变化?
2.5 传统机器学习方面
2.5.1 讲解相关原理
2.5.1.1 数据准备
无
2.5.1.2 特征工程
① 特征降维
无
② 特征选择
● 说了一些特征处理,特征工程的手段?
2.5.1.3 有监督学习-分类和回归方面
① 分类回归树(集成学习)
A.基于bagging:随机森林
● 对比Random Forest 和 XGBoost?
B.基于boosting:Adaboost、GDBT、XGBoost
● XGBoost模型里面参数有哪些?XGBoost模型中对数据进行采样的好处?
● GBDT分类与回归的原理?GBDT为什么能用残差拟合?
● xgboost对比gbdt的不同,xgboost最大的缺点是什么?
● xgboost如何分裂,分裂时的依据,如何控制它是否分裂的,xgboost和GBDT区别?GBDT能不能预排序?
● GBDT的GB和DT从头说一下它的过程,在进行分类和回归的时候有什么不同?
● xgboost防止过拟合的方法,xgboost过拟合怎么办?
● XGBoost的损失函数是什么,节点划分准则是什么;
● GBDT算法时间复杂度?
● 讲讲xgboost,每个叶子节点的值是怎么确定的,如果换一个loss 函数还是一样吗?
● xgboost如何处理的缺失值?
● xgboost,lightgbm的区别?
② 逻辑回归LR
● Logistic回归能处理浮点数吗?
● LR除了可以用梯度下降法求还可以用什么方法求?
● LR怎么加入非线性?
● LR中的连续值特征是如何处理的
● 为什么LR要先对数据进行归一化处理
● LR用了sigmoid函数,那么LR是线性模型还是非线性模型,为什么?
● 对于传统的LR,SVM和树模型,对于他们的特征,你分别是怎么处理的?
● LR损失函数,极大似然思想
③ SVM
● SVM为什么要转成对偶问题进行求解,为什么对偶问题的解是原问题的解 ?
● SVM如何进行多分类,多分类hinge loss什么形式?
● SVM的核函数都有啥,为什么转换成对偶问题,svm对缺失值敏感吗?
● 树模型的损失函数是什么?
④ 决策树
● 决策树的构成,损失函数,剪枝,特征分裂?
● 决策树过拟合怎么办,决策树剪枝方法?
● 决策树对连续值和离散值特征是否会重复利用作为分割特征 ?
● 如何用回归树做分类问题?
● 为什么树模型对于稀疏特征效果不好?
2.5.1.4 无监督学习-聚类方面
● 聚类算法中遇到哪些问题?(kmeans 可能存在空类)
2.5.2 手推算法及代码
● 推导LR?
● 推导SVM?
2.6 深度学习&机器学习面经通用知识点
2.6.1 损失函数方面
● 问图像识别常用的损失函数?交叉熵损失
● 问逻辑回归模型,损失函数和交叉熵的区别?
● 写一下交叉熵的公式?
2.6.2 激活函数方面
● 常见的激活函数有哪些,然后比较一下tanh和sigmoid、relu、likelyrelu?
2.6.3 网络优化梯度下降方面
● 梯度下降的优化算法有哪些?
2.6.4 正则化方面
● 正则化为什么有效果?
2.6.5 过拟合&欠拟合方面
● 过拟合是什么,为什么发生过拟合,怎么解决?
● 防止过拟合,dropout实际怎么操作?
● dropout和BN
3 作业帮面经涉及项目知识点
3.1 深度学习:CNN卷积神经网络方面
3.1.1 目标检测方面
● IOU如何计算?
● 说一下Faster rcnn框架?
3.2 深度学习:RNN递归神经网络方面
3.2.1 自然语言处理NLP
① Bert
● Bert应用于有空格丢失或者单词拼写错误等数据是否有效,有何改进办法?
② Word2vec
● 讲解了word2vec,损失函数,怎么优化?
● 词袋到word2vec改进了什么、word2vec到bert又改进了什么?
③ 其他
● 如果label不是one-hot而是一个服从某个分布的向量,那么该如何设置损失函数?
3.3 强化学习
● 问了简历相关的项目,问GAN是怎么组成的,问生成器用了哪些损失函数?
3.4 机器学习方面
3.4.1 推荐系统
● 说一说FM,FM参数初始化是什么样子的呢?
● 介绍了一下deepFM,还有deepFM的改进deep cross networdk 和 xdeepfm?
4 数据结构与算法分析相关知识点
4.1 数据结构与算法分析
4.1.1 线性表
4.1.1.1 数组
● 寻找数组的最短连续子数组的长度,使得子数组的和大于等于t?
● 旋转数组找最大值
● 旋转数组求给定数的下标?
● 找出数组中最大的k个元素;
想法:
(1)快排,堆排或者归并排序进行排序,然后输出;
(2)优先队列实现;
(3)定义一个长度为k的queue,如果大于则弹出队头,维护一个递增队列,每次都需要对比队尾元素和当前元素,在做相应操作,时间复杂度过高。
● 找出有序数组中第一个小于k的数?
● 找出乱序数组种的第k大的数?
● 顺时针打印数组?
● 连续子数组乘积不大于k的可行解个数?
● 1,5,9
10,11,13
12,13,15
数组每行有序,每列有序,求第k小的数?
● 求正方形数组的90度旋转?
● 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
● 数组,链表的区别
4.1.1.2 链表
● 给定一个链表,划分成子链表反转。例如,10个节点,前4个反转,4-8反转,剩下两个不足4,不用反转?
4.1.1.3 栈
● 给定两个队列,实现一个栈的功能?
4.1.1.4 字符串
● 字符串中第一个不重复的字符?
● 输入一个string,例如'aacab',求所有可能的分割使得每一个substring 都是回文数?
例如 [a aca b] [a a c a b] [aa c a b]
● [2、1、6、3、100、200、4]找出最长连续序列1、2、3、4。要O(n)复杂度,lz只写了O(nlogn)的。然后换了个简单的,最长连续子字符串?
● 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串?
字符串分割:(1)传统方法,O(n^2)时间复杂度较高;(2)队列实现,时间复杂度仍旧较高;
● 最长递增子序列(要求复杂度nlog(n)),最长不重复连续字串(要求复杂度n)
4.1.2 树
● 输入一颗多叉树的根节点,求叶节点的值?
● 给出一串树的先序遍历字符串,*代表空节点,要求(1)写出节点定义 (2)构建树并返回根节点 (3)打印中序遍历
● 已知二叉树的先序和中序遍历序列,如何还原二叉树的结构?
● 给出前序遍历和中序遍历,重建二叉树?
● 给定二叉树的前序和中序序列,重构二叉树?
● 层次遍历建树、后序打印(非递归)
● 给定n,用1到n作为二叉搜索树的节点值,返回n个点所能组成的二叉搜索树的个数,比如n=3?
● 验证是平衡二叉树?
● 完全二叉树的定义
4.1.3 排序
● 排序算法最小的时间复杂度是多少?什么算法?
● 对于1亿个整数进行排序最小的时间复杂度是多少?(基数排序时间复杂度为O(n)),但实际中数据量大的时候其实快排比基数排序要快?这是为什么? 那对1亿个浮点数进行排序最小的时间复杂度呢?为什么?
● 如何从200亿数字中,找到最大的100个?
● 手写快排,快速排序
● 写一下堆排序
● 合并k个有序数组,思路(堆排和归并)
4.2 算法思想实战及智力题
4.2.1 算法思想实战
● 两个人乒乓球,A比B厉害,那么A想赢的话,3局2胜好还是5局3胜好?这个题是可以用二项分布计算的。
● 两个年级同学的身高数据,正态的,怎么判断数据是相同的分布?
● 合法括号的题目
● 青蛙跳台阶的题目
● Top k 个高频元素
● 数学题,a,b,c三个连续的数,其中有两个质数,证明剩下的那个数一定可以被6整除
4.2.2 智力题
● N3的木板,用13的块铺满,有多少种方案?
● 给定一个大小为n*3的木板,问用大小为1*3的木板进行填充,有多少种填充方法?(斐波那契数列,动态规划)
● 机器人从左上角走到右下角的步数?
4.3 其他方面
4.3.1 数论
● 三个连续的数,首先它们都大于6,并且它们有两个质数,证明另一个一定能被6整除?
● 设计一个随机算法,将一个整数M分成N份 要求每份在区间【minV, maxV】之间?
● 求无符号int型中转为二进制有多少1,并考虑简便算法减少位运算次数?
4.3.2 计算几何
● 如何判断平面内的线段是否相交?
4.3.3 概率分析
● 比如五个硬币有两个两面都是花,两个两个都是字,一个一花一字,问给定正面为字的情况下背面为字的概率?
● 两个随机数产生器,R1以0.7的概率产生1,以0.3的概率产生0.R2以0.3的概率产生1,0.7的概率产生0。问如何组合这两种产生器,使新得到的随机数产生器,以0.5的概率产生1,0.5的概率产生0,随机数产生器可复用?
4.3.4 矩阵运算
● 给定一个矩阵,以及两个左边,返回以两个左边为左上角和右下角的矩形中所有数字之和。要求每次调用时间复杂度尽可能低,意思就是不能遍历相加。
(先用动态规划的思路,求出以每一个点为右下角的大矩形的所有数字的和,然后根据传入的两个坐标,将矩形面积相减就可以了)
4.3.5 其他
● 求x的平方根,精度0.01?
● 100以内的奇数以及质数,将其排列,需要满足相邻两个数不互质?
● 给定一个长度为N个整数的list,用最少的比较次数,得出list中的最大值和最小值?
4.4 Leetcode&剑指offer原题
● Leetcode 29题
● Leetcode 原题:二叉树最大路径和
● Leetcode 原题:动态规划,求递增数组的最长子序列长度,要求子序列满足斐波那契数列?
5 编程高频问题:Python&C/C++方面
5.1 python方面
5.1.1 基础知识
5.1.1.1 区别比较
● 元组和列表的区别?如何遍历元组?
5.1.1.2 讲解原理
● python 装饰器讲一下原理?
5.1.1.3 讲解应用
● Python中如何导入包,以及如何导包的执行顺序
● 如何深拷贝?
5.2 C/C++方面
无
6 操作系统高频问题:数据库&线程&常用命令等
6.1 数据库方面
无
6.2 操作系统方面
● TCP/IP模型
● 三次握手
7 技术&产品&开放性问题
7.1 技术方面
● alpha go的19x19的棋盘学习的时候,会用pooling吗?你猜它一共学了多少的特征?
● 有一个森林里面树木年龄、高度的数据,数据可能会有录入错误,怎么设计方案来挑出错误的数据?
● 大数据算法岗:布隆过滤器,URL去重(一个网站有100亿url要存入一个黑名单中,每条 url 平均 50 字节。这个黑名单要怎么存?若此时随便输入一个 url,你如何快速判断该 url 是否在这个黑名单中? )
7.2 产品方面
● 你的流量预测模型能否应用到作业帮的场景中,预测暑期多少学生吗?
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。