一面
项目
详细介绍项目。
现场手写代码
- 字符串反转
- 快排
Python
- 如何提高Python的运行效率
- 写一个简单的正则匹配表达式(将文本中的123.4匹配出来)
机器学习
- KNN(分类与回归)
- CART(回归树用平方误差最小化准则,分类树用基尼指数最小化准则)
- Logistics(推导)
- GBDT(利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树)
- 随机森林(Bagging+CART)
- SVM与随机森林比较
- 改变随机森林的训练样本数据量,是否会影响到随机森林学习到的模型的复杂度
- Logistics与随机森林比较
- GBDT与随机森林比较
- 自己实现过什么机器学习算法
- 推荐算法(基于用户的协同过滤,基于内容的协同过滤)
- 如何做一个新闻推荐
其他
- Map-reduce,Hadoop
- 一个袋子里有很多种颜色的球,其中抽红球的概率为1/4,现在有放回地抽10个球,其中7个球为红球的概率是多少?(伯努利试验)
二面
项目
- 详细介绍项目
- 从项目中在哪一方面体会最深
- 自己项目中有哪些可以迁移到其他领域的东西
- 除了老师的科研课题,是否有做过其他项目
数据结构
- 介绍大顶堆和小顶堆
- 二叉树的前中后遍历
- 手写二叉树前序递归遍历算法(千万不要忘记异常处理!)
- 介绍二叉树前序遍历非递归遍历算法
编程语言
Python
- list有哪几种添加元素的方法,能否从表头插入元素?(append, extend和insert, insert能从表头插入元素, 但是时间复杂度为O(n).)
- 如何获取list中最后一个元素
-
a = [1, 2, 3, 4], b = a, b[0] = 100
, 请问print(a)结果是什么 - list是怎样实现的
C++
-
char a[4] = {1, 2, 3, 4}; char *b = a; b[0] = 100;
请问输出a的结果是什么? - STL中vector是怎样实现的
- 是否有用C++写过实际的工程项目
总结
一,二面从下午3点一直到5点半,所以题目就记下一部分。感觉百度的要求挺高的,既要理论知识到位,还要写代码熟练,对底层、效率等方面也需要有一定的了解,编程方面比较看重C++。