秋招各个公司 算法工程师 面经(微软,百度,头条,美团等)
秋招至今为止,面了好多家公司了,趁着国庆,总结一份面经,贡献给牛油。
慢慢更新,占个坑位先。
个人找工作心得
职位选择的重要性
- 视公司体系而定,具体的话,部门直聘优于集团招聘(不知道被什么部门捞,什么时候捞),实习优先级最高
- 一定要早,抢占先机很重要,当然要量力而行,(可以 以面代练)
- 经历和岗位一定要匹配
面试时重要的基本素质
- 思维广度
- 项目经历
- 沟通能力
各大公司面经
阿里
那会想着观望一下再投,后面突然发现已经招满了,就没有参加面试了,这里告诉各位一定要抓住机会,不要等待。
微软探星夏令营:
微软招聘一般分了三波:实习生,夏令营,校招。
微软校招一般在十一月底,非常晚,想进微软,但是不能实习的人建议走夏令营这一波。
笔试: hihocoder内推的,免笔试;笔试也在hihocoder上进行
面试: 2轮视频面试+3轮现场面试
视频一面
- 程序题: 迷宫题,深搜广搜题
- 设计题, 输入法关键词生成emoji表情
- 聊聊c++相关
- 虚函数
- 一个类对象会不会有两个虚函数表指针
- 类类型转换 dynamic_cast,static_cast等等
- c++新特性
视频二面
- 程序题:树的非递归遍历实现
- 一些业界的认识,比如机器学习的出发点,意义,影响,作用等等
- 网络相关编程,TCP,UDP,握手协议,拥塞
现场一面
- 项目相关,面试官做图形学的,对项目挺感兴趣
- 二分查找代码
现场二面
- 最近公共祖先: 接口定制,要求根据接口做实现
- 接口 TreeNode LCA(TreeNode rt, int i,int j)
- 这一面主要考察调查能力,你是否明白需求?实现需求对应的功能?是否有效沟通? 等等
现场三面
- 题目:求一个点集的凸包,但是不能使用计算几何学的知识
- 微软的主管面试,主要考察数学思维
拼多多
面完微软,应邀到上海参加拼多多面试,主要:2面技术面+1面hr面
技术一面
这一面考察广度,回答一定要简洁明了,不能长篇大论:
- 分类算法的理解
- 决策树的原理
- 支持向量机
- 逻辑斯蒂回归
- 聚类算法的理解
- 均值聚类,可选的参数,如果确定聚类个数
- 聚类和分类的异同,举例说明
- 特征选择算法的理解
- 集成提升的理解
- xgboost
- gbdt
- 代码题:给一堆区间[a,b]集合,输出区间并之和的结果。 例如 输入[2,5],[4,8] ,[9,10],[10,11],输出[2,8], [9,11]
- 点排序+线扫描解决
- 设计题: 大文件中查找某个数
技术二面
- 项目介绍,探讨项目的细节
- 机器学习相关框架
- 神经网络、LR模型 目标、导数推导
- 代码题: 快速排序
今日头条
今日头条一共面了五面,基础是三面,后面加了一面(面的一般,但是通知通过),9月30号又加了一面(面的不好),还没通知结果,目测已挂
一面
这一面主要考察代码功底
算法题:
- 一棵树上路径和为固定值的那些路径
- 归并排序
语言相关基础:
- 封装、继承、多态
- c++和c的区别,和现有更高级语言的区别
二面
考察机器学习相关的知识:
- 项目介绍,深入讨论
- 项目中一些细节模块的选取考虑,为什么这么做,有其他做法吗?在性能和精度上,是否能有这种等等
三面
吃完饭有点犯困,这面也是考察代码
- 二分查找
- 无重复元素的二分查找
- 含重复元素的二分查找
- 找第k大数
- 快排实现、堆实现
- 进阶:不用额外空间,尽可能快的找到第k大数
四面
面完三面,后面通知要第二天加面,这一面考察业务能力,全程基本是我在讲,对方也没怎么提问:
- 项目相关,有什么商业价值
- cv相关的一些认识
- 代码题: 用c语言实现一个外部排序的程序,看到要实现外部排序,心凉了半截,写了半个小时,没写完,面试就结束了
五面
9月30日 今日头条突然打电话来加面,楼主第二次头条加面(第五面),之前加面过一次,接到电话一瞬间觉得自己要挂了
面试的时候比较难,面试官是个技术牛人,会的很多很深,也怪楼主基础不扎实,答不好问题 ~全程跪着下来的,基本都没答好
面试主要分三个方面
数据结构算法
- 1 一些数字,如25341,删掉其中的k个位,得到最大的数。例如,25341删一个数,有 5341,2534等等,其中最大的
系统设计
- 大规模数据优化 1. 大数据下寻找数字异或和位数小于5的数字集合, 没做过优化这块,讨论了半天没给出满意答案
机器学习相关
- 损失及对应推导,logistic regression 标签-1和1情况下的目标,和0 1的区别(不能简单把标签做转换,两者应该有本质上的区别,没答好),导数推导 ,因为视频面试,写的很乱
- 梯度消失
- 激活函数,饱和性质,饱和区间在哪段?有什么影响? 楼主多嘴提到激活单元可正可负会提升迭代效果,举了tanh和sigmoid的例子说明zigzag状况,面试官表示tanh是2sigmoid的两倍,不会有这个问题,并且延伸出几个相关问题。这里答的不好
面完没有通知,但是目测是挂了,没有一个问题答的好
内推-百度运维部
- 师兄内推的,运维部就面了一面,这一面面的很晚,现在还在内推流程中,因为面试官都在忙校招,所以估计二面还要往后面推
技术一面
- 项目介绍,各个子模块选取的依据,必要性,效果等等
- 代码题:
- 一颗树,从右往左看,能看到的序列是什么
- 细节探讨,为什么用全部变量,不用局部变量? 等等
- 介绍一个熟悉的模型,从原理、目标、更新迭代,性能等等方面阐述
内推-百度系统部
- 系统部面试的体验不太好,因为这边被捞起的岗位是 核心网络工程师, 在这边强调一下,岗位最好与经历有匹配
技术一面
- 这一面研发为主,都是围绕研发展开的
- 编程语言
- c++的多态
- 红黑树底层实现
- qsort函数实现
- static类型
- 变量链接性
- 网络
- TCP三次握手,四次分手流程
- 网络结构,某些协议在哪个层
- 操作系统
- 多线程编程, 这个不会,答不上来
- 一些linux小工具
- 编程
- 用rand5生成rand7, 要求等概率
- 这一题忘了,水题
- 设计题
- 如果捕捉网络包中的异常包,异常检测这一块的应用。
技术二面
- 二面面试官比较忙,没有通知我的情况下,就放了我两次鸽子
- 约了早上十点钟,没来电话,等了半小时,问hr,时间改到下午2点
- 下午两点还是没来电话,问了hr,hr催了一下,过了二十分钟来了电话
- 项目介绍,细节分析
- 聚类在大数据下的加速优化
- 三角不等式
- kd 树
- 然后突然 “时间关系,面试到此为止”,莫名结束了,面试时长大约25分钟
百度校招
一共三面,2面技术面,1面经理面
技术一面
- 面试不太注意细节,思路正确即可,问的很广,什么都问
- 代码题:
- 二分查找
- 树的子结构查找
- 两个链表交点查找
- 项目介绍
- 对时间序列预测算法理解
- 评估模型性能的方法
- ROC,AUC
- 假设检验
- 会什么聚类算法? 还有其他的聚类算法?
- 传统的图像处理技术,如 形态学
技术二面
- 聊了聊本科研究生学校
- 聊了聊项目
- LR,FM,GBDT三个算法的介绍,写出更新公式
- 代码题:
- 寻找串str中出现频率超过两次的子串。
- 思路一: 动态规划求解
- 思路二: 二分长度,搜索字符串
- 字符串中的空格删除,规则是:空格两边是同类型的符号就删除,异类型就保留
- 寻找串str中出现频率超过两次的子串。
- 有什么offer
经理面试
- 项目介绍
- 生涯规划
- 手头offer
- 对百度的看法? 想进什么部门? 等等
- 面试官介绍了一下他的部门
滴滴
- 滴滴一共3轮技术面+一轮hr面
技术一面
- 项目介绍
- 代码:二分查找
技术二面
- 项目介绍
- 代码:迷宫搜索题
技术三面
- 项目介绍
- SVM线性可分,对于N100和 N1000的样本来说,哪个的支持向量多?
- 四层神经网络,初始化权重为0,会导致什么情况?(公式说明)
- L1,L2范式的不同? L1为什么有稀疏性?证明
美团
- 美团也是技术三面+hr一面
- 很多问题忘了,大体是基础知识问答吧,列一下记得的
- 美团很给力,面完没几天就给结果了。
技术一面
- 项目介绍
- 代码:
- 树的后序遍历
技术二面
- 项目介绍
- word2vec详细解释
- gbdt的原理
- 代码题:
- 小于N的素数个数(用 素数计数原理,Euler筛,分块筛 解)
技术三面
- 这一面就是设计面,给你一个场景,去设计一个推荐系统,全程没有什么提示,就是你给思路,他点评。