百度2015校园招聘笔试题——研发工程师(西安站)

来源:互联网 发布:linux怎么背命令 编辑:程序博客网 时间:2024/04/29 17:22

一、简述题

 

1.请简述TCP-IP的三次握手和四次挥手?并解释为何关闭连接需要四次挥手?

 

2.操作系统的内存淘汰算法有哪些?请列出并简要说明?

 

3.进行数据库设计的时候需要遵循哪些范式,请列出并说明?

 

二、算法与程序设计题

 

1.寻找一个单项链表的中项,若存在两个则返回前一个,请列出算法描述并给出代码实现。

 

2.在由N个整数的集合S中:找出最大元元素C,满足C=A+B,其中A、B都是集合S中的元素,请列出算法描述、代码及时间复杂度分析。

 

3.使用堆栈(Stack)模拟队列(FIFO)功能,要求数据必须存储在堆栈内部,并显示enqueue(入队)、dequeue(出队)、isEmpty(判空)三个功能,并给出单元测试。

 

三、系统设计题

 

        手机推送服务设计,在各个手机端应用都需要云控制能力,可以在某些情况下云端发送给各种数据或者命令到手机端,例如发一个强制升级的命令或者手机app配置变换的

数据包,以及发送数据给特定人群(某个地区),请设计一个长连接为主的云端控制服务,为了聚焦主要问题,可以忽略掉低俗手机网络(例如:2g网络)、手机终端等因

素、用户登录的需求。

       服务需要承担定向、定量的推送要求,在设计中要尽量高的吞吐能力和容错能力。

       需要完成:

     (a)基本的模块视图。

     (b)连接管理主要设计思路,单台机器承担更多连接,但是连接多了后台管理连接(连接中断,连接查找)都会出现性能瓶颈,请尝试给出新思路。

     (c)尝试给出提高容错能力(避免因为某台物理机器或者某个机器上的程序挂掉导致整个系统不可用)的思路。

0 0