转:2011年10月百度,阿里巴巴,迅雷搜狗最新面试七十题(1)

引言


   当即早已进入10月份,十一过后,招聘,笔试,面试,求职渐趋火热。而在这一系列过程背后浮出的各大IT公司的笔试/面试题则蕴含着诸多思想与设计,细细把玩,思考一番亦能有不少收获。

    上个月,本博客着重整理九月腾讯,创新工场,淘宝等公司最新面试十三题,此次重点整理百度,阿里巴巴,迅雷和搜索等公司最新的面试题。同上篇一样,答案望诸君共同讨论之,个人亦在慢慢思考解答。多谢。

    本人正在一步一步整理本文中50多道题的答案,希望诸君各位与我一起做这些题。已经做出来的题目我会把答案即时更新到文章中。诸君,一起努力吧。谢谢。July、2011.10.14更新。


第一辑:


1.十月百度:一个数组保存了N个结构,每个结构保存了一个坐标,结构间的坐标都不相同,请问如何找到指定坐标的结构(除了遍历整个数组,是否有更好的办法)?(要么预先排序,二分查找。要么哈希。hash的话,坐标(x,y)你可以当做一个2位数,写一个哈希函数,把(x,y)直接转成“(x,y)”作为key,默认用string比较。或如Edward Lee所说,将坐标(x, y)作为 Hash 中的 key。例如(m, n),通过 (m,n) 和 (n, m) 两次查找看是否在 HashMap 中。也可以在保存时就规定 (x, y) , x < y ,在插入之前做个判断。)

2.百度最新面试题:现在有1千万个随机数,随机数的范围在1到1亿之间。现在要求写出一种算法,将1到1亿之间没有在随机数中的数求出来。(编程珠玑上有此类似的一题,如果有足够的内存的话可以用位图法,即开一个1亿位的bitset,内存为100m/8== 12.5m, 然后如果一个数有出现,对应的bitset上标记为1,最后统计bitset上为0的即可。)

3.Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法
String extractSummary(String description,String[] key words)
目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出。(不限编程语言)20分。(扫描过程始终保持一个[left,right]的range,初始化确保[left,right]的range里包含所有关键字则停止。然后每次迭代:
1,试图右移动left,停止条件为再移动将导致无法包含所有关键字。
2,比较当前range's length和best length,更新最优值。
3,右移right,停止条件为使任意一个关键字的计数+1。
4,重复迭代。
编程之美有最短摘要生成的问题,与此问题类似,读者可作参考。)

阅读剩余部分...

P、NP、NP-Complete、NP-hard问题

算法书中,总会有部分讨论到这个问题。绕来绕去的概念,头大。
这篇文章就再来好好学学这几个概念
Table of Contents

    1 遇到难题怎么办?
    2 什么是P、NP、NP-Complete和NP-hard
    3 P = NP ????
    4 参考

1 遇到难题怎么办?


遇到一个问题,通常我们思考的是如何解它。
于是就有了贪心、分治、动态规划等等算法;但也有一些问题,挠破了头也想不到高效的算法。
怎么办?

假如我们已经知道有那么几个问题,这个世界上所有的聪明人都没能找到高效的算法。
而且我们能把目前的问题通过等价转化的方式,变成这些已知问题的子问题。
这样就能证明我们不笨。

这个将一个问题,等价转换成另一个问题的子问题的方式,叫做 归约 (Reduction).
reduction-300x149.jpg
将问题A归约成问题B的子集

阅读剩余部分...

    Page :
  1. 1