【转】百度面试
百度一面,面试官比较耐心,题还是很简单的,也发上来分享下:
自我介绍;
介绍简历上自己最满意的项目;
题1:N个整数,较多重复,找出重复最多的数
题2:单链表的快速排序,要写程序;
题3:N个砝码,质量分别是1,2,3。。。N,要求对于一个任意的质量X(X>=1,X<=N),求出最小的砝码集合,使之能称出[1,X]中的任意一个重量;
题4:一个英文句子,要求把所有单词倒序,比如第1个单词变成第n个,第2个单词变成第n-1个。。。
题5:二叉树的后序遍历,非递归实现,要写程序;
百度商务搜索1,2面 – D姐
round 1(1.5h):
题目都很基础,基础知识+数据结构+算法+MapReduce
0 自我介绍
1 析构函数定义成virtual的好处
2 进程间通信方法有哪些
3 简历中写了“了解Shell”,写了几个常用命令问都知道哪些,然后C语言实现tail,并逐步优化(从IO角度)
4 中位数,给个解决方案及其时间复杂度
5 用MapReduce解决问题:1TB的文件,每行记录含10列,以第3列为关键字排序后将所有记录输出到新文件
round 2(2h): 项目经理
1 单链表,如何排序快
2 英文句子,以单词为单位就地逆置
3 用MapReduce解决问题:10TB的文件,含10million种单词,统计词频为前100的单词。集群配置:25个4核节点,每个节点内存16G。如何设置Map和Reduce个数
4 MPI和MapReduce分别适合做什么事情
5 同Offer帝的自动机的概率问题。(一个自动机有ABC三个状态,每个状态都可以结束,A为入口,那么就可以得到一个状态序列,问,如果这个状态序列的长度为n的概率是多大?可以用递归和DP来做 zz from Offer帝)
6 对未来的规划,假如你在百度,希望做研究还是工程?
让我稍等,他去找第三个面试官,被告知第三面试官正在面其他人,可能安排在中秋或国庆之后~
ps:最近商务搜索部的内推面试似乎都是123面一起的
百度搜索研发部 – 天圭
LINUX和C相关问题:
1. static关键字的作用。为什么static变量只初始化一次?说下进程的地址空间(代码段,数据段,堆,栈等)
2.进程和线程的区别?为什么线程的调度开销小?
3.说下select机制
4.为什么需要字节对齐?字节对齐的规则?
算法和数据结构
(运气比较好,面试官没有要求写出程序,只要能说出算法思路就可以):
1.如何将一个字符串中的某一个字符全部删除,原字符串顺序不变?如输入abcdefbbg,删除b后得到acdefg,要求时间复杂度O(N),空间复杂度O(1)
2.如果要求对一个集合进行查询,插入,删除,你会怎么设计它的数据结构?平衡二叉树特点?怎么查询,如果时间复杂度要求比O(logn)更小,采用什么?hash的冲突解决方法有哪些?如果要求有序的输出,是选二叉树还是hash?怎么输出?
3.如何在一个二叉树中找两个节点的最近祖先节点?
4.台阶问题:有n个台阶,每次可以踏一个台阶,或2个,问有多少种走法?
(PS:我写出动态规划的表达式后,面试官问这个对吗?我想了半分钟,觉得有问题,正准备说应该是....,面试官笑着说哦,别看了,没问题,倒....)