百度面试

由于之前运宇的鼓动,网投了一份百度实习生的职位。

无知无觉。近一个月后突然在上个礼拜时候接到百度的电话面试通知。

于是乎。。。

上个礼拜的电话一面:

1. 要求简短的自我介绍

...
2. 对百度的感觉

比较了百度与google的搜索 - -|...
3. 简历中的项目介绍

关于嵌入式浏览器
4. 擅长语言的问题

C的内存分配函数  malloc  calloc  realloc

    结果居然不知道calloc能够初始化内存 - -|

C++的多态
5. linux 问shell熟不熟

不熟 - -|  好,跳过
6. 算法题

三个有序数组,问怎么组合?如果数组很大呢? 怎么比较出他们的交集(巴嘎,我居然没想到首先先找出最短的数组)
7. 搜索相关 

大量网页中某两个词组的相关度,怎么计算?怎么实现他们的相关度?
8. 智力题

三个饼,最大那个的面积等于两个小的的和,问如何只切一到能够使得平分给四个人?

答:三个叠起来从中间切一刀。

9. 你有没什么问题要问的?

问了问对我的建议。额的处女面啊~~~

今天是电话二面:

1. 还是要求自我介绍

...

2.还是对百度的使用感觉 不过这次说了好多,问百度的什么产品比较好,什么产品不好.

好在什么地方? 对百度有什么建议?  这个我扯了我对云端应用的看法。问怎么实现“网络收藏夹"功能的同步?

3.简历中的项目介绍

... 后来问到dom tree 怎么生成? 不懂 - -| 

4.问TCP/IP  

TCP怎么保证错误重传? TCP的三次握手,TCP断开时候的四次握手? 结果忘了这个 - -|

问了TCP连接的各种状态:   LISTENING、ESTABLISHED、TIME_WAIT及CLOSE_WAIT 这些代表什么?  又不记的 - -|

问知不知道SIGPIPE信号量。 好像见过, 不记的了。。。- -

5.问shell 

怎么查询两个文件中相同的函数?怎么直接显示一个文件中第1000行?

郁闷,都不熟悉。。。- -

6.算法题

赛车比赛,初始有M现金,只能加1升油,知道赛道(每段耗油),知道赛道中的每个加油站(有不要钱的,有要钱的),问要不要参赛?

我只说我觉得应该就是  每段赛道的耗油是一个权值,每段赛道的两端的加油站花费也是权值,就是要找出一条路能够使得油不耗尽钱又不能花光的。。。  但我想不出具体怎么实现 - -|

7.智力题  世界杯小组赛最少要积多少分才能出线。。 

想了好久,说1分,又想了想,结果是两分。 郁闷。 这题估计要扣分了。

8.搜索相关

搜索引擎中怎么实现 输入“百度”,然后会出现下拉框提示常用的搜索词条?(即“搜索建议”或“搜索提示”)

我说应该 1. 服务器有所有搜索词条的数据库, 2. 用hash方法来实现快速检索到常用的词条。

结果他问你要怎么样的hash方法?   卡壳 - -|

大家应该都看到过 GOOGLE 的搜索建议,就是当我们在输入关键词时,GOOGLE 会根据我们目前已输入的字显示相关的关键字建议,这就是搜索建议,现在很多网站都实现该友好的功能,如 YAHOO、狗狗搜索等。
实现该功能的思路就是:

1) 在关键字输入框里,当用户按键弹起时,发送输入框里的字符串到服务器。

2) 服务器根据收到客户端发来的字进入匹配搜索

3) 将匹配用户已输入字的记录回发到客户端

4) 客户端收到服务端的响应,输出建议。

其实就是异步回发(AJAX)。

把关键词记录到search表里,然后用下面的查询可以统计关键词

SELECT TOP (10) keyword, COUNT(*) AS num
FROM search
GROUP BY keyword
ORDER BY num DESC

网络上能搜到的都是这样关于网页上要怎么做的,都没说到数据库中要怎么查找的。

现在想想,其实用匹配也可以吧? 假使数据库中本来就是有序,除了按ABCD这样的主序外,还有被查询次数为次要序。

然后只要匹配到第一个,就可以直接从数据库中返回接着连续的10个,返回啦。

但如果数据库中关于搜索词条的表很大呢?匹配也要时间呀。所以我觉得hash才是最快的。

但问题是这个表又不是固定的! 它是实时更新的呀,比如说一开始没有htc diamond2的搜索词条,但如果出现了这个词条后,你要插入到hash表的什么地方? 所以建立这样的hash表又似乎是不容易的。 - -|

或者说可以,记录所有搜索词条的表A,然后用来做搜索建议的这个hash表B。每天晚上0点由表A重新生成一次表B。而且搜索引擎还要负责搜索记录的过滤呢。(窃笑^_^)这样正好。

那么hash表要怎么建立呢?

讲到这里,其实就是关于这个搜索词条的表怎么建立,用什么的搜索了。其实想想,不只有hash表嘛。还可以多重hash,再加上什么什么,可以用多种方法联合。只要速度够快。

9.有什么问题要问?

我问如果通过这次,还有几次面试?  答约可能还有三面四面,具体不清楚

问意见,是否要多看看算法? 答曰,未必要这样,主要自己对什么感兴趣,就多研究研究那方面。

额。 现在有点担心二面,菩萨保佑菩萨保佑。。

原文地址:https://www.cnblogs.com/funway/p/1978649.html