2012年多盟,系统发开,笔试
(1)已知两个长度为N的数组A,B,已分别按升序排列
A。求第N和N+1个数,伪代码实现,并估算复杂度
B,若你的解法时间复杂度为O(logN)。请考虑时间复杂度更快的算法。
(2)一个长度为n的整数数组,数组中任意n-1个数的乘积,有n个值,求这些值中最大的,
只能使用乘法,不能除法,
A,请描述算法,不必代码实现;并分析时间复杂度和空间复杂度
(3)在字符串中查找某个子串的最后一次出现的起始位置,找不到返回-1,
例如:abcdefaefg
ef 则 为6
A.使用C/C++编码实现,不使用现成的字符串库函数
(4)现有一个论文抓取和检索系统,已经收录了4000万篇论文,他们的spider会一直抓取各种论文,但是和网页不同,论文无法用url做唯一的标识,对于一批新抓取的论文,要进行查重,看它是不是已经被检索,问题:
A,去重操作要求单机实现,占用内存最好不超过1G,执行尽可能快,如何实现论文的查重?分析该实现的复杂度?
B,这个去重算法,可能有哪些badbase?
(5)以微博为例,假设有一亿用户,用户之间的关系可以只是单向的,平均每个用户关注100个用户,请设计表结构,
A根据一个用户,获得他关注的全部用户
B根据一个用户,获得全部关注他的用户
C给出任意两个用户,获取他们共同关注的用户
D给出任意两个用户AB。获取A关注用户中也关注了B的用户
在以上设计的基础上,假设我们使用某SQL引擎,这个引擎速度很快,但当表单容量存储大于
1000万时,性能急剧下降,如何避免这个特性对性能的影响?