随着百度、京东、阿里巴巴等互联网企业在国内崛起,丰厚的员工福利待遇,令人艳羡的年终奖,舒适的办公环境等等,都吸引着人们想去这些企业上班。可是要想进入这些互联网新贵,没有真本事,那可是万万不行的。现在,HR案例网为大家在网上搜集了百度在招聘软件工程师(社招、校招、实习生)时使用过程的笔试题和面试题,与大家分享。
一、笔试之简答题
1.TCP中time_wAIt是表示那种状态,及应用场景,以及起好处和坏处;
2.new 和 malloc 的区别;
3.hash冲突是指什么?怎么解决?给两种方法,写出过程和优缺点;
4.什么是MVC结构,简要介绍各层结构的作用;
5.命中的概率是 0.25,若要至少命中一次的概率不小于 0.75,则至少需要几次?
二、笔试之算法设计题
1.用C/C++写一个归并排序。 数据结构为struct NODe{int v; Node *next};
2.一个url文件,每行是一个url地址,可能有重复;
(1)统计每个url的频次,设计函数实现实现。
(2)设有10亿url,平均长度是20,现在机器有8G内存,怎么处理,写出思路。
3.由a-z、0-9组成3位的字符密码,设计一个算法,列出并打印所有可能的密码组合(可用伪代码、C、C++、Java实现);
4.有一个任务执行机,任务数N<1000,该机器每次只能执行一个任务,而任务之间存在依赖关系,但是任务之间没有循环依赖,请给出适当的任务执行顺序。算法、伪代码,并分析其时间复杂度和空间复杂度。
5.编写函数,统计在某段英文文本中完整句子的数目,文本中只包括大小写字母,空格,点好(.),逗号(,)。完整的句子必须包含至少一个字母并以点号,结束。要求:完整的代码,达到目标;高效;简洁;
三、笔试之系统设计题
1.一维数据的拟合,给定数据集{xi,yi}(i=1,…,n),xi是训练数据,yi是对应的预期值。拟使用线性、二次、高次等函数进行拟合线性:f(x)=ax+b
二次:f(x)=ax^2+bx+c
三次:f(x)=ax^3+bx^2+cx+d
(1)请依次列出线性、二次、三次拟合的误差函数表达式
(2)按照梯度下降法进行拟合,请给出具体的推导过程。
(3)下图给出了线性、二次和七次拟合的效果图。请说明进行数据拟合时,需要考虑哪些问题。在本例中,你选择哪种拟合函数。
(4)给出实验方案
2.自然语言处理中的中文分词问题,前向最大匹配算法(FMM)。
注:题目举例说明了FMM的基本思想。
(1)设计字典的数据结构 struct dictnote。
(2)用C/C++实现FMM,可选接口为
int FMM(vectoriLetters, dictnode *iRoot, vector*oResults);
其中 iLetters 为待分词的句子,比如 {“小”,“明”,“今”,“天”,“买”,“了”,“i”,“p”,“o”,“n”,“e”,“6”},
iRoot 是字典, oResults 保存输出结果,即分词的位置。也可以自己设计接口。
(3)收集了一些手机品牌的字典,如{iphone, 诺基亚}。
现在要求查找包含这些手机品牌的网页,比如包含 iphone6, 诺基亚 9973 等。
怎么修改FMM实现这个功能,可以写伪代码。
四、面试题
1.自我介绍;结合自己的简历简单地介绍一下。
2.结合自己所做的主要的项目进行讲解;
3.算法题目若干(比如如何对Query进行分类等等)