前段时间换工作,我面了几个大厂的算法工程师岗位,总结了面试题,希望对其他找算法工作的人能有所帮助。
面试的算法知识都是基于简历中做过的项目,所以借鉴的意义不大,但是在线编程题和数据库相关问题还是有参考价值的。
一、快手-数据挖掘算法工程师
在线编程:
1、实现二分查法
2、利用SQL,数据库里有星期一到星期天分别对应value:1,2,…,7,求每天与之前天数的value累加值。
算法内容:
1、介绍简历中的两个项目
2、XGBoost的原理
3、随机森林的原理
4、RNN的优化过程
5、Hadoop的原理
6、数据节点堆积问题的解决方法
7、mapjoin的原理
二、京东-算法工程师
1、ARMA时间序列模型介绍,AR模型的前提是什么?MA模型的特点是什么?
2、介绍项目,对细节特别重视
3、介绍随机森林bagging概念,决策树特征划分的标准是什么?
4、Boosting概念介绍,介绍XGBoost两个正则化的应用场景
5、CRAT决策树信息熵的公式,基尼指数的公式
6、深度学习的激活函数有哪些,优化方法有哪些?
7、过拟合的解决方法
8、对于python面向对象的了解有多少?
9、对于spark的了解
10、数据倾斜问题的解决方案
三、百度-算法工程师
在线编程:
1、实现二分查法
2、求二叉树的深度
3、搜索二叉树找一个小于目标值的最大值
算法内容:
1、介绍随机森林算法
2、发散题,100亿条数据求top100,需要考虑哪些问题?
3、介绍分布式数据库原理
在线编程:
1、二叉树进化题,一颗二叉树从某个叶子结点开始燃烧,燃烧到相邻结点的所需时间为1秒,现在求整颗树烧完所需时间。
2、求num的二进制里有多少个1。
算法内容:
1、概率题,20枪命中4枪,其中有3枪是连续命中的,求多少种可能性。
2、发散题,网页博彩信息如何剔除。
四、阿里高德-算法工程师
1、详细介绍了3个项目。
2、随机森林与XGBoost的区别
3、深度学习中防止过拟合的方法有哪些?
4、介绍dropout
5、对于离线数据流的了解
五、新浪-数据挖掘算法工程师
1、对于项目细节聊得非常深入
2、介绍时间序列算法
3、介绍核密度估计算法
六、下厨房-数据挖掘算法工程师
在线编程:
1、二叉树遍历非递归实现
算法内容:
1、关联规则算法原理
2、决策树原理
3、CNN算法介绍