百度网页搜索部三次面试面经

楼主现在在阿里实习, 普通 985 本科, 之前搜百度网页搜索部的面经, 结果比较少, 今天当个好人, 不管过没过, 总是发个面经来给大家.

一面
由于是电话面试, 所以一二三面都不写白板(电面的优势?). 记得不太清了, 一面首先问了项目, 然后几道基础题, 包括进程间通信方式, 线程间同步方式, C 的静态变量存在进程空间的那个地方. 比较难的是信号如何捕捉, 哪些信号能捕捉, 哪些不能捕捉, 这个问题把我问倒了, 我说还是另请高明吧.
算法题是一道简单的dp, O(n2) 的那种, 基础好的不用担心. 还有一道比较经典了, 是区间合并的题, 也是 dp 的思想. 面试官原本没打算面我算法了, 讲完基础题面试官的意思就是不用再面了, 最后我看才 15 分钟, 说为什么不面算法, 结果就再来了两题.

二三面
二三面总共一小时40分钟, 先聊我对搜索引擎的了解, 对策略的了解, 所谓策略就是搜索引擎的搜索策略啦, 我说完全没接触, 只是以前跟别人聊天的时候想过一些方法, 比如按照分等级的思想, 搜索排在第一页的用的算法最快, 但是数据往往不需要实时性, 可以是脏数据, 搜索排在后面的可以用较慢的方式, 用实时的方法去做流式计算或者离线计算. 这样可以动态按照热点去对搜索页进行缓存, 并且两个热点字段的缓存结果可以 merge(用类似 mr 的 reducer 思想), 比如某宝强和某蓉, 就把某宝强的搜索结果和某蓉的搜索结果按 relevance 做 merge, 后来他说由于***有限, 怎么做热点提取, 我说统计词频 :-( 真的不会, 后来他问说流式计算怎么保证跟离线批量计算具有同样的正确性, 说白了就是 exactly-once, 我当时没看完 jstorm 的 exactly-once 怎么做的, 就想说业务上做 unique id, 然后设置 timeout, 如果一个节点发送的数据没有收到确认, 在 timeout 之后由 Acker 或者由节点去申请重传, 重传不是只 spout 重新发送数据, 而是靠业务的 unique id 自增来保证数据是全新的, 从而保证 acker 不会再接受那个失败了的 unique id. 面试官说可以.
然后就是面试算法题, 是一道我没见过的题, 就是把无序数组排成  a1 < a2 > a3 < a4 > ... an 这种波动型数组, 具体解法我是没想出来, 面试官提醒以后才知道怎么做.
后来就是问分布式系统 A 请求系统 B, 如何保证负载均衡, 我想的是一致性哈希, 也可以用消息队列.

总体就是这样, 百度面试经验还是很有意义的, 做了一点微小的分享, 祝大家面试成功!
#C++工程师##百度#
全部评论
谢谢楼主面经,网页搜索部面的挺难得,特别细,不过挺坑,我一同学实习一年了做后台被告知没有HC给转了,这个部门今年名额不多,楼主好运
点赞 回复
分享
发布于 2016-08-22 16:02
楼主强大!
点赞 回复
分享
发布于 2016-08-22 16:30
小红书
校招火热招聘中
官网直投
厉害。
点赞 回复
分享
发布于 2016-08-22 18:57
楼主有后续消息了么?三面过后结果大概啥时候能出来啊?
点赞 回复
分享
发布于 2016-08-22 20:46
厉害
点赞 回复
分享
发布于 2016-08-22 21:36
同面这个部门,听说还有四面,感觉要gg。。
点赞 回复
分享
发布于 2016-08-22 21:38
三面后什么时候能有通知
点赞 回复
分享
发布于 2016-08-22 22:07
楼主您好!下周二我要电面网页搜索部的数据挖掘岗,求指点
点赞 回复
分享
发布于 2017-02-17 19:46

相关推荐

4 35 评论
分享
牛客网
牛客企业服务