查看文章
 
网易有道研发一面面经
2009年10月12日 星期一 19:58

下午刮着大风到了创业大厦,第二次来就不那么陌生了。到前台报完道就等着,结果陆续来了几个被面试的,一共6个人,四个中科院两个清华。。。竟然还有一个闫总的同班同学,还有一个我的同班同学。。。Orz

等了一会就被叫去面试。2v1,但是只有一个人问问题,另一个人旁观(好像只是为了监督或者保证公正性?)。面试官一看就是个技术牛人,穿着一件“有道难题”的T恤,眼神迷离。。。

上来他就说了一下主要内容,先根据简历问基础知识,然后是两个算法题。

我见他在看我的笔试题,于是我就补充说,我笔试题最后一个算法不太好,应该用传递闭包,blabla。。。然后面试官顿了一会(看来面试官CPU也有限),没给我回答,觉得我的算法是有问题的(我仔细想过的),但是最后也没说出来什么问题,估计他回去之后会想的。。。

第一问,他看我C++熟,就直接问如果遇到segment fault怎么办,我还真没听过这个名词,但是我大概理解他说的是什么,肯定是说指针的地址是错误的,比如指向了0x00000000之类的地址,但是这样的地址是不能读写的,blabla。。。

第二问,我项目有关于网络的,问了一个TCP慢增长是什么,这个题估计是我答的最差的了(相对的),因为实在是很久没接触了。。。于是只是把大体概念讲了一下。。。还有一个子网掩码是干什么用的,这个很easy。

第三问就开始算法题了。算法题有二:

(1)区间覆盖问题。这个太Orz了,我还写过博客一篇:

http://hi.baidu.com/microgrape/blog/item/5964f71fcfa337fe1ad5760e.html

面试官看出我看过这个题目,直接说:你写代码吧。。。写了一会,然后他就一直检查代码,每次检查都会找到错误,于是我就改,之后的半个小时我俩就一直陷入在他挑错-我改错的循环中。。。不过我也太笨了吧,写过的代码都忘得一干二净。。。sigh,总是忘记检查边界条件。。。

(2)给定一个字符串,只允许添加字符,如何用最快的方式把它变成回文,而且还是最短的。例如,abca,添加一个c,就可以让这个串变成acbca。

我先联想了一下最长回文子串的做法,把字符串颠倒,然后两个比较,后来被面试官指出,不能解决所有情况。

既然此路不通,我又想了一个指针从两头向中间移动的算法,结果又被否掉:复杂度太高。

之后又想了半天,面试官看我很郁闷,就提示说一开始的想法是对的,但是要找的东西必须清楚。于是我又仔细观察了一下字符串颠倒之后和原字符串的区别,找到了规律,最后终于把算法说出来了:其实最终目的就是要让颠倒之后的字符串变成与原串相同(这是回文字符串的本质特点)。但是我最遗憾的就是没说一下这种题的终极解法:trie或者后缀数组。。。但是那个我也不懂呀,不说也罢。

问完算法题,又补充问了我一个项目的问题。

然后就被送出门口,回来接受等待的煎熬了。。。

=======================================================

【总结】

有道的面试官还是比较nice的,也肯定是受过培训的,没有给人很大的压力,而且会及时引导。当然,他们的眼睛还是很敏锐的。。。从这一点,我觉得有道十分像微软的风格了。

这种面试算法题的,由于气氛凝重,往往容易让人进入一种思路后跳不出来或者忘记了这种问题的根本思想,以后我这方面要加强呀(当然也跟trie确实不会有关系。。。没底气嘛)。

还有,我以后要管住自己的嘴呀。。。尽量还是在脑袋中想,不要随便就把复杂度啊之类的说出来。。。

======================================================

【补充】

过了两天收到拒信了。总的感觉还是不够认真,边界条件没有检查,总等着面试官去纠正;另外就是项目核心的东西都忘了。没办法,只能继续努力了。


类别:笔试面试| |分享到i贴吧|浏览(1659)|评论 (0)
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu