2024年8月31日发(作者:)
百度电面小结
2011-06-16 00:42
现在确定了一个本地的面试,但是还是想尝试一下其他的,主要是为了锻炼自己,多争取写
机会。但是这段时间,过多的机会让我很疲惫,我想静下来,有个实习机会就知足吧。好好
做这个实习就行。
百度就工作机会来说它是很好的。5 月底的时候在豆瓣网上看到有个人发布招实习生的消息,
留了个邮箱,我就给这个邮箱发了个求职信,附带自己的简历,其实自己的简历很烂。但是
由于这种方式,过了几天这个邮箱的主人给我打来电话,让我在百度 hr 网站里把这个部门
的职位选了,然后把简历号告诉了他。他说已经帮我内推。之后百度有个 hr 打来电话安排
电面,把时间定在周四下午。但是到了周四并没有打来电话,过后一个百度的人打来电话说
电面安排在端午节后的第一个工作日,也就是周二。
端午节期间,学校的一个校友,是百度一个部门的经理,他来学校有个座谈会,之前也发过
简历,他说有内推的实习生机会。我也发了简历,但是没有通过筛选。我有些不解,就第一
次霸王面,想知道简历有哪些不足。面试还算可以,和学长有所交流。
周二的时候我因为家里有事就做火车回家了,下午时候百度的那个人打来电话,开始了电面,
但是在火车上,不断的过隧道,手机信号特别不好。就 4 分钟,就终止了电面,只是简单
的说了说我研究生做的什么,自我介绍一下。我后来打了电话,道了歉,并把电面时间再次
推迟到这个周一。
我从家回来后,周一并没有收到电话,之前也想着是可能不会再打来电话了。但是周二下午
还是那个人打来了电话,说 4 点电面。不一会,那个学长发来消息,问我之前有没有申请
百度其他部门的职位,我把这个告诉了他。他说只能一次面试一个职位。所以他部门的电面
机会要排在这个部门的之后,只有这个部门的电面 fail 了,才能再次有他部门的机会。百
度避免不同部门之间调换。我想学长表示了我挺喜欢他部门那个职位的。但是没办法,只能
先接受之前的这个部门的电面。
4 点 半的时候还是那个人打来的电话,开始了电话面试。
具体哪些问题我也记不清了,只能想多少说多少。
一开始时问我之前在 IBM 的一个部门实习,都做了什么,干了什么工作,参与了哪些系统
实施。我大概描述了一下。
然后问我研究生阶段做了什么,介绍了一下研究方向,与信息检索的区别,所作的工作有哪
些结果,分别说了一下,也没有太大的细问。
说到信息检索,就问道搜索引擎中的网络爬虫。这方面的东西我只知道大概,具体的细节不
了解。我可能都不能理解他问的问题。又问到怎样避免相同的 url。我说用哈希、失效。
问 url 不同参数怎么处理?我说删除不同的参数,取前面相同的,这个我一点都不知道,
他问怎么删,答 可以用聚类的方式
又提到 url 可以深度搜索、广度搜索
后说到动态网页
不同网页相同的部门与不同的部门,怎样去重。我说聚类。具体也不了解。
然后说到对搜索引擎,只是了解一个大的框架,从网络爬虫、倒排索引、查询模块、结果排
序、呈现。
又问到倒排索引,如果一个词在很多文档中都有出现,如何办?我可能还是没有理解他说的
意思,或者说我根本就不懂搜索引擎。我就说利用词表,但是词表是必须的,所以这个说法
根本不成立。关于怎样优化倒排索引,具体我也不太清楚。曾经读过信息检索方面的书,但
是并没有深入。
这块的问题,我回答的很差劲,基本上不能通过。
然后问了 C++ 的问题。说明一下虚指针和虚函数表。我就说了一下 C++ 的对象模型,多
态,为什么要有多态,举例结合设计模式,虚析构函数,资源丢失。C++ 的问题基本上集中
在这方面。
然后又了海量数据处理的问题。他说的是有 50 亿个 32 位的整型数,如何找到重复出现的
数。我一开始听成 51 个数了,就直接说用排序,让后遍历,O(NlogN)。又说可以用 hash,
由于理解成 51 个数,在 hash 讨论了很久,等发现是 50 亿个数的时候,才发现刚才是多
么可笑。然后想了一下,说用位图,开辟一个 2^32 bit 的空间,这样只需占用 512 MB 的
内存大小即可。每个待检测的数可以用作 bit 的索引。这个方面是可行的。
然后又问了个用 1 亿个数,找到最大的 1 万个数,我说最直观的方面是排序,最大的 1 万
个。当然这种方面不好,造成不必要的排序。就说了可以利用快排 partition 解决。还有另
一种方面利用最小堆,遍历所有的数,时间复杂度为 O(NlogM)。这个也是可行的。
之后又问了个设计问题,关于数据结构的。说 vs 中的自动提示功能或者 VA 插件或者
baidu 的 suggestion 如何实现的。我先是说到用排序二叉树、平衡二叉树,但是他并不满
意,后说直接一个字符串数组,然后二分查找,还是不行。他希望是更快的速度,只能是映
射的方法,采用 hash。停滞了一大会。说可以针对每个函数的前缀字符串建立 hash,这样
可以快速的找到相应的提示结果。但是需要做预处理,用空间换时间。
后又问了个网络的问题,TCP 中的三次握手,我描述了一下,SYN、ACK、序号。他问序号
是怎样产生的,我还是没能理解他的意思,就说用加 1 的方式。应该是滑动窗口序号随机
生成,然后在接收方加 1。
总共大概是这些问题。然后让我问问题,我就问了下,实习生是不是都有 mentor 带,他说
有的。然后问了下是不是和正式员工都有培训,也得到肯定的回答。
基本上是这些内容,电面 54 分钟 39 秒。
电面后,我自我感觉挺好,这是昨天下午电面的。我今天一天还是自我感觉挺好的。但是刚
刚回顾了上面写的内容,尤其是前面关于搜索引擎方面的问题回答简直是一塌糊涂。其他自
己对自己的感觉与实际相差太大了。
今天中午的时候,学长发来消息说昨天的电面还可以,评价也不错。基本上算是通过了这个
电面。但是现在也没有正式的通知。另外加之我刚才的回顾,我感觉自己的表现实在不好。
只能是当做一次学习的经历了。
总结一下:
这个电面问题的问题还是很广泛而且深入,从实习经历、研究课题到搜索引擎(网络爬虫、
倒排索引)、C++、算法(海量数据处理)、数据结构(功能的设计和实现)、网络技术。
各个方面的知识都需要有个深入的学习和理解。要有自己的领悟和观点。真正是懂得了这些
东西。
理解面试官问的问题很重要,而这个前提就是你对这个领域有深入的学习和思考。否则,就
当然不能理解面试官问的问题,这样就造成答非所问,就闹出笑话,基本上面试就会失败。
心态还是要标准,面试难免不会紧张,但是面试是一个交流和沟通的过程。应该专注在与面
试官讨论问题分析问题上,其他的不需要多想。在解决问题的时候,思维应该开放一些,避
免因为害怕思路短路了。尽量表现出积极解决问题的决心,不要被问题吓到或者放弃。
以后的学习中,要知道学习什么和学习的程度。首先要有一个学习的方向,知道学习哪些内
容。然后将这些东西好好掌握。做到深入理解并且有自己的领悟和看法。
其实什么都是公平的,今天的付出会换来明天的收获,今天的虚度会换来明天的损失。
珍惜时间,明确方向,深入学习。把现在做好,严格律己。
-----------------------------------------------------------------------------------------------------------
大家好!第一次在博客园发表文章,若有不妥之处,敬请见谅!
下面我简单的叙述我被电面百度实习生的经过。
听说电面许多是突如其来的,但是我这次却不一样。我在百度官方网上投了简历并通过筛选
后,没过几个星期,百度分机客服mm联系我商量好电面时间:第二天11:00。我投了的
是百度搜索部,所以我想他应该会比较多的电面我算法及数据结构的相关知识。稍微做了下
准备,在11:07分左右,电话响了,010„„--显然是北京来的,对面传来一个比较疲惫的声
音(大概程序员都这样吧,加班啊什么的),确认一下我的身份无误后,让我做了一下自我
介绍,简单介绍完毕后,他要我讲述下做过哪些项目,我介绍了一个数据库的和一个网络编
程相关的,在我讲述的时候,他会随时对我所说的项目进行提问。由于对这些方面不太熟,
所以讲得不太理想,此时我立即把话题引入我熟悉的领域------算法,然后他就算法方面提问,
第一个问题:有多个文件,文件内包含许多字符串和该字符串对应的权值,要求把所有文件
内的字符串合并,相同字符串的权值相加,我首先想到的是c++的map,他说可以,然后他
继续提问:字符串很多,超过内存,比如10G文件,怎样把效率提高?我想了下,表示可
以用数据库(本人比较弱),他说这样效率太低了,可以用hashmap,这样比较的时候或者
查找便会效率很高,对于超内存可以用文件分段。后来他问了一个数学题:有a和b两种试
剂,a和b透明,a试剂和b试剂相遇会变色,同种试剂相遇不会变色,现在n只a试剂里
混有一只b试剂,试剂变色检测要一小时,问你用最少的试管在一个小时内检测出那只b
试剂。 我忘了答案,我只能想出n个试剂,就是把三个一份,一份只需三个试管,3*n/3 =
n。后来他又问了些算法题,还问了些有关我提到的项目中的数据库的分割,当时不太懂,
回答得不太好。大约面了一个小时,然后他问我还有什么问题,然后结束了。
第一次正式电面,差强人意,发挥的不够好,根本原因还是自己不够犀利,但是经验还是赚
到了。
------------------------------------------------------------------------------------------------------------
我是CS大四的,已经考上研究生了,其实投百度的实习生就是抱着打酱油的心理去看看, 要
是能去就更好了。网笔的时候有班上的ACM牛人在旁指导,速度搞定,呵呵„„不过后来 一
直没了音讯,实验室里投上海研发部的一个师兄(我投的是北京)早就一面完了,自己 心
理有点焦急,以为悲剧了,慢慢把这事忘了。 大概过了一个多月,一天下去出去踢球,平
时踢球都是不带手机的,那天不记得什么事情 了,觉得应该把手机带上。呵呵,踢球的时
候接到一个010的电话,一个很好听的mm声音: “我们是百度公司”,呵呵„„ 我觉得
面试有的时候还是看RP的,一面的GG聊的很开心,虽然我投的是商务搜索部,但是 平时
做的最多的还是一些偏底层的东西,看的出那个GG对底层不是特别了解,不过他很赞 赏
我的钻研精神,问的两个算法题也都回答了大概,其他的一些细节的东西没有说清楚, 不
过他说没关系的,感觉一面还可以,过的希望还是蛮大的„„ 大概过了三四天,接到HR
电话说第二天上午10点电话二面,我耐心的等待,可是到了10点 20还是没人给我打电话,
实在忍不住了,就给HR打了电话,她说是工程师临时有事,改到 11点,汗,竟然不提前
通知一声„„心理有种不祥的预感 11点开始面试,感觉那个工程师刚刚忙完什么事情,有
点疲劳(上午11点,本来就是人的 疲劳期吧),一开始还可以,不过后来问的搜索引擎方
面的问题回答的很不好(以前对这 一块确实没什么深入的了解啊),而且整个面试过程中感
觉挺紧张的,出了很多汗,还好 不是当面面试„„总体感觉不是很好,不知道有没有机会
三面 通过这次经历,个人感觉还是收获很大,首先,我感觉百度很看重人的自信心,要相
信自 己的学习能力,相信一个任务交给自己后自己可以搞定它;另外,百度很看重一个人
的钻 研精神,在平时的学习中要经常地问“为什么”,即便你想不出答案,但是勤于思考会
为 以后的发展带来很大的帮助。
------------------------------------------------------------------------------------------------------------
前几天百度给我打电话,说约个时间电话面试,定于6月30日下午3点,问我行不行,我
当然说好。
6月30日下午,3点过10分左右接到百度电话,面试官首先说打电话有点晚了,不好
意思,我觉得电话晚了是故意的,给几分的准备时间吧。面试官声音给我的感觉这个人很朴
实。他让我自我介绍一下,我就是将自己的基本情况说了一下,当说到是预备党员的时候,
他把我打断,说这个就不用说了,然后他就直奔主题,问我那篇论文的情况,我跟他说了说。
接着,他说下面问你几道题。
他说先说一道概念题,关于进程和多线程的,我就照着课本说的跟他说了一下。
第二道是算法题,问:有一个二叉树,将它保存在一个文件里,如何存放,可以通过
这个文件恢复二叉树。
第三道题也是算法题,问:有n个集合,集合的元素都是整数,设计个算法找到这n
个集合的交集。
第四道题是设计题,问:设计一个系统,实现用户收发不同公司blog的消息。
回答完之后,面试官说过会还有电话面试,初定4点15分。
大概4点半接到百度电话,这个算是第二面了,这个面试官先自我介绍了一下,说自己
叫庞*,我只听到姓,名字没听清楚,感觉这个挺和善。然后他直接了当的说,下面开始面
试。
第一个题,大概是要过滤垃圾邮件,让我设计过滤的算法。
第二个题,关于内存调度的,设计cache调度策略的。
第三个题,给一段c程序,如何实现其他转换成机器语言。(这个比较简单)
第四道题,设计一个网页,实现团购。
这四道题比较活,面试官问的也挺活,几乎是想到哪就问到哪,有的题问着问着就不知
扯到哪里了。二面感觉是在考反应能力,就看能想多少东西说多少。
总结这次电话面试,最初只是想拿到面试机会就相当好了,现在想想觉得还是要争取一
下,面试官说我回答的还行,不知是不是客套话,不知结果怎么样。
这几天好好准备一下,希望还有三面,并且可以过,这个才是最关键的。
-------------------------------------------------------------------------------------------------------------
今天下午在百瑞国际酒店参加百度暑假实习生面试,机器学习与数据挖掘方向。
2点中到那里,然后叫我到楼上房间面试。面试的是一个gg,很年轻。由于整个楼层没有洗
手间,只好问他能否借用一下他房间的洗手间。出来后就直接开始了。自我介绍,我简单说
了几句,2分钟左右。然后问了一下我项目的东西,跟数据挖掘关系不大,也扯了一下。接
着就是说一下那个稍微有点关系的项目,然后也是扯几个机器学习的算法,比如
PCA,LDA,SVM之类的。扯完以后他就让我做一个题目,说一个整数数组和一个整数,找出整
数数组中两个相加为这个整数的一组出来。我说先排序,然后固定一边走另外一边,根据情
况看移动哪一边,然后他说你能不能证明一下为什么不需要回溯,然后我就说了一下。没有
下个问题了,然后问我有什么问题,我问了一下他是做什么的,他说是文本那一块,然后也
是扯了一些文本的东东,还问了百度跟google在英文文献搜索上的差距。。。。就这样了!处
女面结束了。我只能说我尽力了,剩下的不是我决定的了。
祝各位xdjm取得好成绩!
------------------------------------------------------------------------------------------------------------
昨天急急忙忙的,没啥准备的就突然做了百度的电面,而且面试前我还窘迫的不知道是申请
的哪个职位面我(我申了3个)。
因为人在澳门,所以他们那边打电话联系不到我,自己打过去又没人接,所以开始的时候非
常恼火,不过最终找到人,就约了下午6点的电面。直到面试开始一阵,我才能确定是哪个
职位。。。汗一个。。。(我还把面官当成了HR,以为不会是技术面,结果证明人家是工程师.....=
=|||||||||||||)
不说废话了,攒人品,说电面具体内容:
电面一共持续了50分钟 (我的国际长途电话费呦...心疼), 职位是北京百度支持平台研发实
习生。
因为我只是把简历用EMAIL发过去,也没有参加什么笔试,所以面试的总要基于我的简历
内容。简历中写到的项目基本都问了个遍,问的非常仔细,技术细节都有问到。
比如,我有连个PHP的项目,除了简历上写到的内容外,还问了PHP的性能优化,PHP可
能在大规模系统中出现的内存溢出问题,海量数据存储和优化等。我的项目中有设计使用
web service,就问了其中的细节,以及我认为可能遇到的问题和最优解。还问了如何解决单
点登录的问题。
我的J2EE项目,就问了对各种框架的理解,问框架的好处,Hibernate可能存在的潜在问题,
在一个已有项目中(Spring+Struts)如何做到用最简单的办法记录用户的每一项历史操作。
除了项目,还问了基本算法(二叉树搜索),Linux的指令,都是基础的,可惜我毫无准备又
忘光光,所以死的很惨。
最后还问了项目管理方面的经验,还有就是简历中我其他的非技术类的活动的一些了解性问
题。
整体来说,就是面试前我把人家当成了HR,觉得顶多问问虚无缥缈的假大空问题,结果人
家是正经工程师,就把我问的一丝不挂。感觉百度对性能优化非常看重,但是可惜我还真的
没有这方面的经验,所以只能跟他扯淡,当然我的扯淡一听就是扯淡了...
结束的时候,我探口风,9成9没戏... 不过算了,这是咱第一次电面,当攒经验了。
希望以上面经,对后来人有点帮助~~~
-------------------------------------------------------------------------------------------------------------
一面1. 网络编程经验:
如何判断一个http请求,一个客户端请求已经结束;如何处理服务器多线程
获得一个http请求后,是如何处理的?返回什么?有没有试过返回图片?
服务器给客户端请求时,是用什么函数写?服务器如何获取客户端请求,用什么函数
(需要函数级别的连接有一个认识)
2. cv操作是什么函数 cv_init, cv_wait, cv_signal
3. 有一些关键词点击次数的文件,如何输出最多点击的一百个(当时应该回答,组织一个
100个元素的最大堆)
4. 相交链表,如何找相交点(不能要标记)
第一个头遍历到尾,知道他的长度;第二个头遍历到尾,知道他的长度。这样知道两截
链表在交点前的长度,长的先走几步,然后一样长了,再轮流下走,就会相聚,相遇节点就
是相交节点)
5. 有些文件,频繁访问在磁盘里头的,现在要放到内存中了。采用什么策略来决定哪些放
到内存中?如果是一些url文件,放在内存后,如何快速的找到某个url的位置(采用字典
序或者b树之类树状结构来组织) 如何快速找到哪些文件太久没人访问了,把他替换出去?
(再那一棵树,记录树里每个位置url的访问时间;同时,那个url树的节点,也有这个时
间树的对应的位置信息。时间树采用最大堆组织。要替换出去时,就从树顶取走节点,并且
从中获得这个节点在url树对应位置,把他从url树中取走。当url被访问时,由于url树节
点有时间树的位置信息,所以也很快找到对应节点在时间树的位置,然后把他的访问时间更
新,然后做堆调整,每次堆调整为logN)
6. c语言相关:内联函数的好处?非内联函数被调用的过程是怎么样的?
int,short,char的struct,这几个数应该怎么放,内存小?怎么防止头文件被include多次?
7. 有没有什么问题想问的
8 linux 网络查看的命令
二面
1. 介绍一个项目
2. 2.5亿个int数,可能有相同的。统计出这里头不同的数有多少个?只有2g内存。
(2.5*1000 000 000 * 4 =1G)
统计数-用hash,key是数,value是1或0,标记是否出现。
如果key就是那个数,那么找一个数的时候,要遍历hash才知道有没有,慢(就是如果hash
紧凑,慢)。
解决方案:把key作为连续的(就是hash是稀疏的,有个key值没有存在这2.5亿个数中),
像数组下标一样,那么要访问第n个数,直接到第n个去看,复杂度是O(1)
但是,如果连续,2.5亿个数,范围很广,而每个key用int存,会很大量,内存不一定够。
解决方案:每个key用一位bit来标志。即数字1放在第一个bit上,数字2放在第二个bit
上。看第n位在不在,就找一下第n个bit是1,还是0
具体方法:char a[] 数组。假设找3,那么3在3,所以在a[0]中,找第3个bit,如果
是0,就设置为1。最后看看a[]的二进制表示有多少个1就有多少个数
3. 海量数据,在mysql中,cpu占用率很高。如何解决?
processlist,看哪个sql查询的多,建索引(问:建立联合索引时,要考虑什么,怎么
建(哪个在前,哪个列在后?)
2.如果老是在拷贝到临时表,就改配置,把临时表内存改大些
3.还有什么方法:
1)分布式数据库 (问:如果你来设计分布式数据库,你会怎么设计?)
2)使用缓存 (问:如果缓存中的数据,被删除或跟新了,数据库怎么判断这个缓存的数
据不能用了,是脏数据?)(不懂)
问:什么情况下cpu会高?(内存不足)为什么内存不足cpu会高(频繁io读写)
4. n个无序int,(有正有负),给一个数v,如何找出其中的a+b=v的两个数
(我的答案是:排序 O(nlogn),记录序列中,0,大于v,小于v的3位。
尝试最小的和最大的,最大不行,次大。。。,找到某个,加起来小于v了,停止
尝试次小的,从上次大头停止的位置开始尝试
---尝试范围两头不断缩小,复杂度为n)
5. 网络相册,一个人可以有多个相册,一个相册有多个图片,如何快速实现增删查移动等
操作。web页面上,图片是翻页显示。
(我回答:数据库记录:usr_id, book_id, item_id, position。相片放在磁盘上,目录为
position/usr_id/book_id/item_id
一次查两个操作:1)数据库查找2)根据位置取图片
如果用户提取某个相册的所有图片,先给他第一个相片和所有item_id列表。然后用户翻页
了,在客户端通过javascript能够知道翻的是哪个item,把item_id,book_id, usr_id发给服
务器,服务器根据这个到目录下去找)
(你这种设计会有什么问题?(答不上来。。。)(如果用户频繁翻页,那么服务器上会不断地
在传输图片)(如何解决?)
第五题我想不出好办法,我觉得一般他们都show thumbnail
就是预览小图片不把原始图片show在页面上,点击后才能看单个图片
6. Unix系统里,一个简单的print hello world的c程序,从./执行到屏幕打印出来这句
话,是什么过程
(1.读elf,会从相对地址,计算出各个symbol的在进程中的绝对地址。然后找到入口main
函数
1.用到std的库,所有有run time load。
2.然后是print调用的进栈
3.然后是系统调用,当前进程被挂起。系统调用会调用驱动。。。(内核切换,用户态到内
核态)
4.内核处理完再唤醒当前进程。(切换)
调用完毕,退栈
函数退栈
)
问:哪个进程来调用的main?(不知道)
应该是当前运行的这个和用户交互的shell作为父进程,然后父进程fork子进程,子
进程和父进程一样,然后调用execv会load执行文件,和把参数传到main的堆栈中
编程,要注意什么问题
(服务器的serversocket的基本模型。
但是大量请求,会不能及时响应。所以要多线程。
一个监听线程,多个服务线程。服务线程一开始起来都阻塞在存放请求socket的tasklist上。
wait
监听线程接受到client的socket,放入tasklist中,signal唤醒一个服务线程。服务线程处理
它,并把它从list中移走
注意问题:tasklist的存放的请求socket是会被放和移走的,消费者生产者问题。所以要
synchronized来互斥?)
三面
2. fread的过程(文件系统-内核。。。)
3. 主DB在接到数据更新后同步到后台DB,如何避免网络丢失之类的问题
(参考答案1:传的是sql语句,接到后回ack,如果主DB发现一段时间没有回,重发;其
实TCP传输,就保证了不会漏数据,所以不会考虑这个问题的)
(参考答案2:每次传sql语句和当前版本号,然后后台DB会对比版本号是不是正确,发
现落后就发数据请求。主DB保留每次版本号更新关联的sql语句)
4. N个bit,如和判断其中有多少个1.(时间复杂度小于N)
预存一个2的8次方大小的数组,每个数组值是,这个下标的数的二进制的1的个数,例如:
a[0]=0, a[1]=1, a[2]=1,a[3]=2....a[2^8-1]=7 (以空间换时间)
然后一个byte一个byte的读,看看他的值,直接以这个值为下标去数组看他的1的个数
另一个方法:
while(v){
v &= (v-1);
num++;
}
1000 & 0111 = 0, 所以每&一次,不为0,说明有1个1,&到为0为止,num就是1的个数。
复杂度为1的个数。
------------------------------------------------------------------------------------------------------------
众所周知,百度技术面问得问题都是特别的细,我是今年暑假参加了百度的实习生
招聘,很多基础的东西都忘记了,在二面的时候挂掉了,下面是我面试的时候遇到的几
个问题,希望对今年应聘百度的同学有所帮助:
1:memmove的实现(需要现场写出程序)
2:memmove和memcpy的区别
3:strncpy当遇到size_t n 大于或者小于 strlen(src)的情况时,怎么处理
4:memmove为什么要返回void*?
5: printf的用法(没办法贴图哈,就没法解释了)
Printf(“%f”,5)
Printf(“%d”,5.01)
5: 还有一些海量数据处理的问题
建议: 1:基础的东西一定要熟悉,c(绝对不止谭**那本书上的内容),数据结构,
算法,网络,操作系统,编译,数据库,linux
2:保持平和的心态
哈哈,继续准备面试,以前的好多东西都忘记了,祝找工作的同学们好运连连。。。
-------------------------------------------------------------------------------------------------------------
先简单介绍一下本人,本人小硕,信通院通信与信息系统,无线方向,投的百度无线新技术
研发,技术岗。虽然在实验室做过一些项目,但也都是无线通信的底层开发,和互联网没有
任何关系。。。
今早尚未睡醒,突然一阵手机铃声传来,一个陌生的手机号码,见其不是响一声电话,
遂接之,在不算清楚的状态下被通知下午一点普天大厦百度面试,突如其来的通知搞的我有
点措手不及。本来觉得18号笔试完直接被鄙视了,这从天而降的机会还是迫使我需要在短
时间内做好必要的准备,所谓的准备也就是从网上查查面经,复习复习笔试题目,总之还是
抱着学习的态度去的,没抱太大希望。
下午12点40到达普天大厦,签到后稍微等了一会儿,接待我的jj将我指到一个小型的
广场,阳光很好,有很多小圆桌,我的面试官已经坐在其中一个小圆桌上等我了,是一对一
的面试,坐下后简单打了个招呼,面试就开始了,先是按照我的简历问我关于最近一个项目
的相关内容,包括项目组的职责,做过什么,贡献在哪,碰到过什么难题等等,因为面试官
gg估计也不太懂我做过的东西,我就blabla一顿介绍,然后又问我学的课程中认为哪个比
较困难,困难在哪,有没有具体例子,总之问的比较细。我觉得在这个环节最重要的就是让
面试官觉得项目是你做的,有的可讲,对于自己的贡献的部分讲的越细越好,对方听没听懂
没有关系,关键在于能够有条理的回答对方问的问题(当然,如果对方对自己做过的项目非
常了解,回答问题的时候就应该尽量谨慎,不要扯淡,以免露怯。。。)
之后的环节是算法,数据结构,编程题,由面试官现场出题,他先出了两个比较简单的
题目,一个是 char str =\"hello\";sizeof(str)和strlen(str)为多少,还有一个是floata;将其和0
做比较的if语句如何编写。然后出了一个数据结构算法实现题:给定二叉树,写出计算该二
叉树的高度的函数,这题我没想出来。。。他又出了一个:给定二叉树,写出拷贝该二叉树的
函数,返回拷贝后根节点值,这道题我只说出了大概的思路,看面试官的表情,不是很满意。。。
随后又问了关于二叉树深度优先和广度优先的算法问题,和堆排序的算法问题,无奈专业背
景相差过大,这些我都没答上来,对于学计算机的学生,我觉得这些问题应该都不难。。。最
后又给我出了道关于字符串的问题:给定字符串,内容为a-z的字符,其中有一个字符出现
为奇数次,其他均为偶数次,找出出现奇数次的字符,我简单给出了一个算法,但是时间复
杂度过高,于是面试官gg问我能不能对算法进行优化,这个又难住我了,虽然面试官gg人
很好,在我想的过程中一直给予提示,无奈我水平不够。。。想出来的答案都相去甚远。。。我
觉得这个环节本身考察的问题其实并不难,都是基础,换一个学计算机的学生,这些东西不
过是平时的功课罢了,只要算法,数据结构的基础知识过硬,回答这些问题应该都不会很困
难
距离面试结束还有几分钟的时候,和面试官gg简单聊了聊,获知对方是南开计算机毕业
的,告诉我互联网行业技术岗主要要求的素质包括算法和数据结构,网络的基本知识,编程
能力等等,期间还说了一些我没太明白的专有名词,总之,他觉得以我现在的知识储备和项
目经历,目前还不太适合这个职位。。。
一个小时后,面试结束,本来我也是抱着学习的心态过来试试,对于这样的结果我还是
预想的到的,这一趟面试也算没有白来,能够学到一些东西我就知足了。希望大家都能找到
好工作,共勉!
---------------------------------------------------------------------------------------------------------
【百度2010校园招聘技术类笔经】
第一题:简要说明树的深度优先、广度优先遍历算法挤特点
第二题:一个复数相加的编码挑错题
第三题:告诉内存大小和cpu速度,计算可能的程序运行最长时间
第四题:复杂项目的组件编译依赖,设计一个快速算法并计算复杂度
第五题:写个c程序,返回字符串中最长数字字符串的长度和地址,不能用标准库函数
第六题:设计个系统,存储100亿个url和属性信息,并可以更改属性信息和查找url,快
速搜索站点的所有url及信息
【百度2010校园招聘非技术类笔试题】
1、09年的第一道图形推理题,不过我不知道正确答案,知道的童鞋请帮忙告诉一声,我
选的C
2、还是往年论坛上有的非技术题,只是换了下字,分析2010年的网络购物,宠物用品和
化妆品
3、说出10种易拉罐为什么做成圆柱形的理由
4、一个八边形,各角觉有一小虫,爬呀爬,计算终点之类的,题目太长,没记住,抱歉。。。
5、3个男人、2个女人一起渡河,只有一条船,每次只能渡两个人
女人要求:不能让一男一女同时一起过河
男人要求,每人只能划一次浆
如果只有一个划桨的,阿特第一,本第二,**第三。。
问:用最短的过河次数推测,谁最后一个划桨渡河?
6、有两张标准版的世界地图,一张的比例尺是1:3600万,另一张的比例尺是1:2000
万,将较大的一张完全的覆盖较小的一张(两张都是平整铺开的情况)。请问:取出一枚图
钉,是否可以选择到一个点,按下去,刺穿的两张地图的点对应的是同一个真实地球上的点?
不论是或否,请给出你的思考和论证过程。
7、说明一些你对互联网和百度产品的理解、分析之类的
8、你认为这次测试是否能够基本反映出自己的水平?你对自己今天的答案满意么?如果不
是,你还有哪些补充?
【2010校园招聘百度用户体验部笔试题】
第一部分:答一题,多答不限
1.方差分析的统计原理和运用条件
2.什么是社会网络研究?它的主要观点是什么?有哪些应用?
3.市场调研过程分为几个阶段?各个阶段的核心任务和目标是什么?
第二部分:三题必须都答
1.用户体验研究领域有哪些专家?用一句话描述他们的主要观点?
2.用户体验研究和产品运营之间的关系
3.交互设计是什么?一个好的交互设计具备哪些特征?举例说明。
第三部分:答两题,多答不限
1.简述用户体验研究方面的企业实践项目?(没有可以不写)
2.有用户提出反馈“搜索结果页面,需要将页面拖放到最底才可点击下一页,可否实现翻页
置顶或自动反应功能”,如何处理这个问题
3.百事可乐攻击可口可乐时,曾经在马路上随机做双盲实验,多数人认为百事可乐比可口可
乐好喝,百事可乐公司以此为据进行推广。可口可乐也在马路上做双盲实验,惊奇地发现,
多数人认为百事可乐比可口可乐好喝,因此,可口可乐公司下定决心改进产品,推出新产品
“new coke”,没想到“NEWCOKE”推出后消费者抵制,并且要求推出原来的口味。请分析
“new coke”失败的原因。
4.统计关键词的搜索量时(有一个图,统计2007 2008 2009关键词搜索量),有人说“......,
因此,当台风来时,人们就更关注变形金刚”,设计一个研究说明结论正确与否。
第四部分:附加题
有四道逻辑推理题
估算你所在城市的出租车数量?简述估算理由。
【百度2010校园招聘运维web开发两道笔试题】
1.推理:24个人,每人至少养一种宠物,养鸟、狗、鱼、猫的分别为13、5、10、9人,
同时养鸟和狗的2人,同时养鸟和鱼、鸟和猫、鱼和猫的各为4人,养狗的既不养猫也不
养鱼。问只养一种宠物的总共几人?同时养鸟鱼猫的几人?
2.找程序的错和不足:
int test(char *value,int value_len,int flag)
{
char temp_buf[BUF_SIZE];
sprintf(temp_buf,value);
char temp_new_buf=new char[value_len];
if(flag)
{
strcat(temp_buf,\"flag is true\");
printf(temp_buf);
return 1;
}
delete[] temp_new_buf;
return 0;
}
【百度2010网页搜索产品市场部笔试题】
1.微软搜索引擎Bing的相关搜索是放在搜索结果左侧的,而百度的相关搜索是放在搜索
结果下方,请分析一下,这样做各有什么优缺点,你觉得怎样设计更好?
2. 分别列出以下检索query的网页前十理想结果,需要给出每条结果的排名并阐明理由。
(我觉得这几个关键词是比较实事性或随机的,所以每个时期笔试给出的检索词可能不一
样。)
【百度2010非技术类笔试】
一、选择题
30道,共60分
主要是逻辑(verbal类、推理类,无数字题)和互联网商业常识(比如市场份额最大的搜索
引擎)。
二、论述题
1道,40分
对推广“百度知道”产品的思路和方法。
难度不大,时间充裕。很多人提前交卷的。
【2010年百度运维部笔试及相关说明】
这次应聘的是运维部的数据库DBA,实际上运维部的所有岗位试题是一张卷子,五个简答,
一个算法完善程序,一个系统设计题。
这次百度是分部门考试的,每个部门一张卷,不是像以往的好几张卷子。
由于公司的保密性以及对其他同学的公平性考虑,这里不透漏具体题目,但是可以告诉大家
方向。
之前一直以为会考很多算法,后来证明是错误的
运维部的备考还是以运维岗位的需求为主题,重点不是算法,而是系统,数据库,以及简单
的算法知识。
整张卷子只有一道题目要写程序,而且是比较基础的。
其他简答题里,有一道算法题,只是简答,EASY;另外有关于linux的文件系统的题,性
能优化,数据库基本概念,以及硬件处理能力相关知识之类
最后的设计题,也是和运维紧密相关的,当然是数据库和系统架构知识的结合,不是很细。
希望对大家有帮助。祝考完的同学好运!
【百度2010运维部笔试题】
总共三部分7道题
第一部分·简答
1·简述树的深度优先算法、广度优先算法,及非递归实现的特点。
2·在文件系统中,元数据(比如ext2中的inode)的基本作用是什么?ext2跟ext3的根
本区别是什么?
3·在web服务中,负载均衡的基本作用是什么?请举例你熟悉的一款负载均衡软件或者实
现方案,简述它们的实现原理。(这题后半部分为开放性,我也没记多深,大概就这样)
4·数据库事务的四大特性是什么?请你简单举例对一个完全不懂数据库的人解释这四个特
性。投数据库管理员(DBA)必答。
5·一个微型处理器,1KB内存和1MHz(每MHz运算次数为10^6),在这样的计算机上
面运行程序(程序到该终止时会自动终止,不会出现死循环)最长能运行多长时间?你可以
进行任何需要的假定。
第二部分·算法和程序设计
1·int maxContinuNum(const char *inputstr,char * outputstr)
编写一段程序实现该函数,实现返回一个以“0”结束的字符串中最长的数字串的长度,并把
该数字子串的首地址赋给outputstr。不能使用任何库函数或已经存在的函数,如strlen。
例如:在字符串“abc123abcdef12345abcdefgh123456789”中,把该字符串的首地址
赋给inputstr,返回9,outputstr指向字符串“123456789”的首地址。
第三部分·备份系统设计
(这题太长了,记住的不多,下面是大概的)
设计一个备份系统,要求符合三个备份场景,写出你的设计思路,框架模块设计,实现原理。
要求:1·该系统要能实现对多服务器备份工作(大概这样,还是。。)
2·该系统要具备很好容错性,不能因为多服务器中的一台出现故障儿导致整个备份工作不能
进行。
3·。。。
4·。。。(这两点记不清了,不好意思)
5·具有较强的扩展性,例如当服务器内存不够时,能灵活的添加内存。
扩展性是附加,在实现前面的要求后再考虑扩展性
备份场景服务器备份网络速度 备份开始时间
场景1 a1~a1010M/S每天上午10点10分
场景2a1,b1,c1,d130M/S(忘了- -!)
四台服务器
场景3a1~a100 5M/S(也不大记得了。。)
【分享百度13日笔经】
1.简述深度优先及广度优先遍历算法,并说明非递归实现的特点
2. 程序找错,一大段。
3. 假设有一台迷你计算机,1KB的内存,1MHZ的cpu,已知该计算机执行的程序可出现
确定性终止(非死循环),问如何求得这台计算机上程序运行的最长时间,可以做出任何大
胆的假设。
4. 大型软件有很多组件,编译时存在复杂的依赖关系,比如N1和N2存在依赖关系,要
编译N1必须先编译N2,假设存在N<1000个组件,之间存在复杂的依赖关系,但不存在
依赖环,问采用怎样的算法来构建编译规则,说明算法的复杂度。
5.写一个函数 int MaxContinuNum(const char *inputstr,char *outputstr)
找出一个字符串中最长的连续数字串,返回最长数字串的长度,并将最长字符串存入
Outputstr指定的地址,
如, abcd1234abd123abcd123456789, 最长连续字符串为123456789,长度为9
6.有100亿个url,要求设计一个系统,能实现url的添加、删除、更新,并能查看url的
内容
【百度2010商务搜索部笔试】
1,深度优先广度优先定义。它们非递归实现的特点
2,一个复数实部 虚部分别相乘求和的程序改错
3,一个有内存1KB, 处理器速度 10^6/S
最长计算时间
4, N个文件相互有倚赖(编译的时候) 设计一个算法,编译之
5,一个字符串中最长的数字子串
6,100忆个URL的存储,查找,删除,更新,添加
【百度2010笔试归来】
第一题:树的深度遍历,广度遍历,和非递归实现算法的特点。
第二题:一堆代码,找错误和潜在的危险。
第三题:一个有1kb内存和1mhz处理器的计算机在上面运行的程序的最长时间是多少
算法题目
1.包编译依赖问题,设计算法,能够最快的完成包的编译
2.对输入的字符串能够从中找到最大连续数字的字符串
系统设计题目
百度最常出的题目,如何在100万url处理path、属性等等。
更多推荐
百度,问题,算法,面试,设计,字符串
发布评论