您的位置:首页 > 其它

笔试题目探究(持续更新)

2014-08-29 15:05 204 查看
作者:disappearedgod

文章出处:/article/3730193.html
时间:2014-8-29

——————
Alibaba
1.题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存)。

二分可以 桶排序也可以

这里更准确点说是快排的partition过程

中位数你定位到在哪个地方就可以了

lgn

2.一个容器类数据结构,读写平均,使用锁机制保证线程安全。如果要综合提高该数据结构的访问性能,最好的办法是()
A. 只对写操作加锁,不对读操作加锁
B.读操作不加锁,采用copyOnWrite的方式实现写操作
C.分区段加锁
D.无法做到

C:读写平均说明在操作上加锁没有用,读写锁适合场景是 读多写少。
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。

3.如下程序存在的问题___
class A{
public:
A(B * b):_b(b) {}
~A() {delete b;}
private:
B* _b;
}
int main()
{
B b;
A(&b);
return 0;
}

A. double free
B. stack free

ANS:delete栈内存问题,delete,是用于new出来的动态内存的,系统会把栈区当成堆区释放(delete会调用heapfree)

4. 一个二进制网络通信协议的豹纹,包头定长,除了包头意外,可以携带长度和内容都不定的负载,设计报文格式时,可以用____方式,确定协议处理程序能够正确识别每一个报文:
A. 在报头中第一个定长字段中写明报文全长
B. 在报头中某个定长字段中写明负载长度
C. 在报文头尾加固定长度的边界符
D. 使用定长报文,如负载超长,则分片

写明长度就可以识别(A.定长报头,先截获再获取)
5.



Ans: 动态规划

C(6,4)-2 = 6!/(4!*2!)-2

横着走是1,竖着走是0,排列组合

C(6,2)是在把图补全为矩形的情况下计算的,左下角和右上角你走不到,所以-2

6.



特殊Hash(概率)

大题
1. 有两个较长的单向链表a和b, 为了找出节点node满足node in a 并且 node in b,请设计空间使用尽量小的算法(C/Java/伪代码)
Anwer:找出第一个公共点,后面都是了。

2.淘宝网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: