百度笔试题

移动终端开发的笔试题:

一.简答题

1.用线性表,二叉平衡树,哈希表存储数据,比较各个的优劣。

2.给定一个十进制数,转换成N进制。

3.给一个程序代码进行分析。主要是内存管理方面的。有4个小题目,如下:

    (1)C程序将内存分为哪几类(答案在《程序员面试宝典》第175页)

    (2)结合题目中给出程序代码,分析一些变量是属于(1)类中的哪一类。(答案《程序员面试宝典》第175页下面的实例)

    (3)分析题目中程序代码关于内存分配的语句。内存分配失败后,结果是什么?

    (4)delete与 free的异同。判断题目代码中使用是否正确。(答案《程序员面试宝典》第81页)

二,系统设计

对于一个递增数组,我们可以采用二分查找法判断数组是否存在数x。但现在有一不太规则的数组A’,但它又具备一定的规则性:在某一范围是递增,如数组序列:{15,16,17,21,1,4,6,7,100,124,156,…},在前4项是递增的,第5项到第9项也是…在这样的数组中,如何查找数x是否存在了。请详细给出你的算法。并分析算法的时间复杂度和空间复杂度。


研发测试笔试题:

一、简答

1 linux/unix远程登陆都用到了ssh服务,当网络出现错误时服务会中断,linux/unix端的程序会停止。为什么会这样?说下ssh的原理,解释中断的原理。

2一个最小堆,也是完全二叉树,用按层遍历数组表示。

(1). 求节点a[n]的子节点的访问方式

(2). 插入一节点的程序void add_element(int *a,int size,int val);

(3). 删除最小节点的程序。

3 关于hash,有表A,用100%表示,它的粒子度是0.1%,同样的表B,两张表组成一层。要将A均匀映射到B,B的每10%里面有1%对应该于A的10%。另一问,如果有超过十层以上,要实现它们之间的这种映射,hash函数应该怎么实现。

二、算法

1有一个数,比如N=123,一共有三位,所有位的值加起来是6。我们找出另外一个数141,也是三位,所有位加起来也是6,这样和123有同样关系的数还有很多,我们将求一个有这种关系并且是所有数中只比基123刚刚好大的数定义为F(N)。如果不存在,则F(N)=-1.现在有一个数n,它的位数小于1000.它的值小于10^500.求F(F(N))=-1。不记得问什么了?是问迭代过程怎么实现还是问什么时候停止的。反正是一个迭代

2 求一个全排列函数:

如p([1,2,3])输出:

[123],[132],[213],[231],[321],[323].

 求一个组合函数

如p([1,2,3])输出:

[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]

这两问可以用伪代码。

三、设计

 有两个十亿数据的表,表是xxID,xx,xx,xx之类的几个项,存的是url之类的,只说是存到硬盘的,中间没说内存限制什么的。

其中有一问是实现数据查找中的and ,or ,sub(与集, 交集,差集) 。其中要实现and(sub())之类的功能。

还有并行实现…不记得了。

另外一问是当查找(比如and运行)出前100位时,怎么让它停下来,不要再查找了。怎么实现这种高效查找前100位的运行。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值