腾讯笔试面试2011
2011-11-26 09:39
281 查看
转载(1) http://qq.dajie.com/discuss/topic/62027/detail
(2)http://technicolor.flycoder.org/articles/471.html
腾讯实习的招聘已经是很久的事了,为了不让这个系列草草收尾,我还是在假期里了结了它吧。这是“找实习”系列的终结篇了~ 其实早就找到实习了,只不过我喜欢做标题党~
~
另外两篇在这里,和这里。
腾讯实习招聘宣传的很早,所以我很早就网申了,不过当时投简历的时候投了Java方向(这方面也算小有修为),后来笔试的时候却阴差阳错的选了前端开发的JS方向~
网申要过应该很简单,有个靠谱的大学,有个靠谱的履历就可以了,学习成绩似乎都不用太高~
网申过了就是笔试。我的笔试是在4月23日上午10:00(翻手机记事本找到的~~),在大学城的华工。
笔试题目分为两个部分:基础、拓展。
基础部分大多是一些微机原理、计算机网络、操作系统、数据结构的知识,题目不难,就考基础。
基础的题目大部分忘了,不过……虽然数据结构掌握的还过得去,但计算机网络是忘的差不多了,操作系统略有了解,微机原理完全没学呀!!!!
悲催呀,有木有!!!
非计算机专业出身的孩子伤不起呀!!!有木有!!!
不过,我基础部分做的还是说的过去的~哈哈~
~
总之,纵使代码能敲的噼啪响,基础部分还是需要扎实。
拓展部分题目就是当初网申时候选的方向,就一道题。不过所有方向的题目都印在一张卷上,想做啥都行。
我先说说Java的题目吧。
Java方向有两题,任选一题。第一道是关于Android的多线程,据说不难,可是我看到Android就直接忽略了~ 俺Java后来玩的是Struts2、Spring、Hibernate,估计腾讯中用Java来做Web的不多,SSH还是做商业项目比较有市场,于是果断忽略之。
然而我这忽略也忽略的太大了,木有看到Java还有第二题,是笔试结束之后别人告诉我的~ 伤感呀~ 第二题那个简单呀~ 我闭着眼睛都做出来了(主要是之前看过)~
第二题题目是这样的:
某花心男外面有了情妇,他的QQ上超过半数的聊天记录都是和那情妇对话,也就是说聊天记录中排除花心男自己讲的话之后,他情妇的聊天记录超过其他人的总和。很不巧,那个花心男的老婆通过特殊渠道取得了他老公的所有QQ聊天记录msgList(结构为LinkList,每个数组项包含属性qqNumber、content、time,约有几十万条数据),现在需要你编个程序把那个情妇的名字给找出来。
这个题目太特么喜感了~ QQ的聊天记录就这么容易被盗吗~ 是社会工程学的伟大?还是安全管家需要再接再厉?哈哈~
说白了,就是找出数组中出现次数超过半数的那个元素。这里假设msgList只包含情妇和其他人的记录(不包括花心男),因为直接删了花心男的数据也只需时间复杂度o(n),不影响。
解法一:
这是最容易想到的一种方法,也就是遍历msgList,用一个countMap记录每个qqNumber出现的次数,然后遍历countMap的keySet,找出出现次数最多的那个qqNumber。
这种方法的时间复杂度为o(n),空间复杂度为o(n)。
解法二:
虽然上面的算法时间复杂度已经是o(n),但是很费空间,因为n不是个小数目。另一种方法是对msgList的qqNumber进行快速排序,由于情妇的qqNumber出现超过半数,则排序后数组的中数必定是情妇的qqNumber~~~问题解决~~~~
这种方法的时间复杂度为o(nlogn),空间复杂度为o(1)。
解法三:
好吧,上面两种解法都很不错了,但还能有更好的吗?复杂度为o(n),空间复杂度为o(1)的?
答案是,有的。
每次在msgList里面删除两个不同qqNumber,直到无法再删为止。由于情妇的聊天记录超过半数,所以最后生还的qqNumber肯定是她的。
这种方法的时间复杂度为o(n),空间复杂度为o(1)。
这道题竟然被我雪亮雪亮的双眼给硬生生忽略了,悲剧呀~ 不过后面JS的题目很容易,就一题,好像是遍历一个table,找出某个td,然后改变它的style——我就是靠这题蒙混过关的~估计考的是对语法的熟练度。
于是,我就踏上了前端JS的道路。
笔试完之后,我就去市区玩了,很不幸晚上错过了地铁,然后决定和同学在外面通宵。更不幸的是,我在当天很晚的时候收到了第二天早上9点腾讯一面的通知~[泪] ~震精呀~ 改卷效率也太高了吧~
第二天一早就赶7点钟的地铁,赶到学校8点多,噼里啪啦刷牙洗脸换衣服,然后就“精神抖擞”的奔向面试地点(好在离学校近)。
面试地点是在华工酒店的客房里,环境蛮不错的(腾讯那几天把华工酒店的几层楼都给包了~有米)。面试我的是一个GG,年轻俊气的脸庞,温文尔雅,蓝色的Polo衫彰显着青春的激情与活力(拍个马屁,哈~)。
他像聊家常一样和我聊,主要通过我自我介绍的内容来不断挖掘更深的信息,各种技术社团、项目经历,不过没有很深的去探讨技术细节的东西。
后面聊开了就问我在前端开发方面的了解和积累。我就开始吹了(不过都是靠谱的吹),说了一些自己对前端工作的看法;说我平时很喜欢了解一些关于前端开发的理论与实践,一直有订阅博客的习惯,经常看UCDChina、腾讯CDC、淘宝UED的博客;还说有看过jQuery的源码,了解了它的实现方法;还说了自己在前端方面的一些小作品(真的很小~)……
虽然以前一直有接触前端的技术,也很感兴趣,弄过一些小作品,可是一直没有花大力气去研究。那个GG人很好,没有怎么为难我,如果那个时候考我一些JS的难题我还真不一定能过~
最后,他问我有什么问题问他,这个时候我囧了~ 木有想过~ 最后灵光一闪,问了一下他前端开发人员的职业规划,以及和后台开发人员的对比(后台开发以后可以有很多深入研究的方向,例如移动互联网、云计算、数据挖掘等,那前端开发人员的技术突破点在哪?)。虽然当初他的答案我不是很满意,但是我现在似乎已经找到了自己那个问题的答案。
他似乎对我印象很好,走的时候跟我握握手,暗示我“应该没问题了”。
回宿舍,倒头大睡~
一面后的第二天晚上,我收到了二面的通知,时间是26日上午10:00。
面试我的是一个中年男人,估计是中层领导。他面试过程中一直满脸笑容,讲话和蔼,但总让我觉得有点笑面虎~哈哈~
他问的问题主要是结合自我介绍和简历来问。他会不断深究你讲的项目内容,例如对你影响最大的项目是哪个,在这个项目中做了什么,怎么分工合作,遇到最大的难题是什么,怎么解决,从中学到什么,这个项目对你以后的项目有什么影响等等。
问完项目之后,话锋一转,问我有木有学过C++——我说有,不过很久没用了,主要用Java。他又问,有木有学过数据结构——我说有。然后就出了道算法题考我,给了我纸和笔。
直接上题:
有个几十万个节点的单向链表,你如何判断它是否带环,如何找出环开始的节点。
这道题看起来简单,不过还是要想一阵子的,如果要找到比较优化的解法也不容易。好在,我之前做过~~
第一小问:
最简单的想法就是遍历链表,记录每个结点出现的次数,如果有结点重复出现,说明有环。
不过这个方法的很占空间,正确的做法是从链表头部放两个不同速度的指针(p、q)去遍历链表,p每次走一个节点,q每次走两个节点。
如果q到了链表尾,则说明不存在环;如果存在环,由于q的速度比p快,当p进入环内之后,q必定会从后面超过p,然后和p重合,两个指针重合则说明有环。
当p进入环内时,p和q之间的距离必定小于环的长度L,则L步之内p、q必定能重合,所以时间复杂度为o(n),空间复杂度为o(1)。
第二小问:
这就是个数学问题了,先说解法:设p、q相遇处为X,让p从x处开始,q从链表头结点开始,每步都走一个节点,相遇处则为环的开始节点。
原理如下:
设头结点到环开始点H的距离为h,环的长度为l,链表长度为L=h+l。分为两种情况考虑,一种是l>h,一种是l<h,前者比较容易明白,弄明白前者,后者也就好懂了。我就只说第一种情况的,l>h。
当p到达H时,q已经走了2h,此时p、q都已经进入环中。由于p、q速度不同,他们形成追赶,q到p的距离为l-h,也就是还要走l-h步才能相遇。设相遇点为X,则p从头结点到X走了l=h+(l-h)步,则离环的开始节点还有h=L-l的距离,也就是和头结点到环开始节点的距离一样。
后一种情况,l<h,只需将余数h%l弄清楚就可以了。
幸好之前做过,思路理顺了,不过也还是花了点时间的。期间面试官会各种打岔,问你各种性能,复杂度,有没其他解法的问题。
然后还问了一些个人兴趣爱好,有没女友,家庭情况,人生规划的问题。
然后是杀手级问题:我有什么问题问他~~~再次无语凝咽~~~又是用一面的问题混过去了~~~
最后握握手,say good bye,就回去等三面通知了~~
总之呢,平时多看书,多思考,多积累~~~
三面等的就相对比较久,好像是29号上午11:00去面的,是HR面,也就是最后一面了~
那个HR面无表情,寡言少语,眼睛只看电脑,我那个压力呀~
不过问的问题都是兴趣爱好,有没女友,家庭情况,人生规划……只要没大漏子就行了……(据说有个大牛开口就是“我以后要出国”~
)
问了十来分钟,就say good bye了,饿了吃饭去~
据说进了3面的大部分都能获得实习机会,所以我回去就没多想了,坐等消息。不过一等就等了小半个月,5月10号才收到录用函。
实习期至少两个月,各种福利待遇还不错:每月有1400住房补贴(差不多够吃够住),有一次性600来回路费(省内),而且刚到的时候还有15天的酒店住宿(据说4星级),还有每月还有“业内富有竞争力的实习工资”。
这次腾讯的笔试面试还是蛮顺利的,而且腾讯还是我心目中非常向往的企业,实习开始之后一定会努力的!
(2)http://technicolor.flycoder.org/articles/471.html
腾讯实习的招聘已经是很久的事了,为了不让这个系列草草收尾,我还是在假期里了结了它吧。这是“找实习”系列的终结篇了~ 其实早就找到实习了,只不过我喜欢做标题党~
~
另外两篇在这里,和这里。
腾讯实习招聘宣传的很早,所以我很早就网申了,不过当时投简历的时候投了Java方向(这方面也算小有修为),后来笔试的时候却阴差阳错的选了前端开发的JS方向~
网申要过应该很简单,有个靠谱的大学,有个靠谱的履历就可以了,学习成绩似乎都不用太高~
网申过了就是笔试。我的笔试是在4月23日上午10:00(翻手机记事本找到的~~),在大学城的华工。
笔试
笔试题目分为两个部分:基础、拓展。基础部分大多是一些微机原理、计算机网络、操作系统、数据结构的知识,题目不难,就考基础。
基础的题目大部分忘了,不过……虽然数据结构掌握的还过得去,但计算机网络是忘的差不多了,操作系统略有了解,微机原理完全没学呀!!!!
悲催呀,有木有!!!
非计算机专业出身的孩子伤不起呀!!!有木有!!!
不过,我基础部分做的还是说的过去的~哈哈~
~
总之,纵使代码能敲的噼啪响,基础部分还是需要扎实。
拓展部分题目就是当初网申时候选的方向,就一道题。不过所有方向的题目都印在一张卷上,想做啥都行。
我先说说Java的题目吧。
Java方向有两题,任选一题。第一道是关于Android的多线程,据说不难,可是我看到Android就直接忽略了~ 俺Java后来玩的是Struts2、Spring、Hibernate,估计腾讯中用Java来做Web的不多,SSH还是做商业项目比较有市场,于是果断忽略之。
然而我这忽略也忽略的太大了,木有看到Java还有第二题,是笔试结束之后别人告诉我的~ 伤感呀~ 第二题那个简单呀~ 我闭着眼睛都做出来了(主要是之前看过)~
第二题题目是这样的:
某花心男外面有了情妇,他的QQ上超过半数的聊天记录都是和那情妇对话,也就是说聊天记录中排除花心男自己讲的话之后,他情妇的聊天记录超过其他人的总和。很不巧,那个花心男的老婆通过特殊渠道取得了他老公的所有QQ聊天记录msgList(结构为LinkList,每个数组项包含属性qqNumber、content、time,约有几十万条数据),现在需要你编个程序把那个情妇的名字给找出来。
这个题目太特么喜感了~ QQ的聊天记录就这么容易被盗吗~ 是社会工程学的伟大?还是安全管家需要再接再厉?哈哈~
说白了,就是找出数组中出现次数超过半数的那个元素。这里假设msgList只包含情妇和其他人的记录(不包括花心男),因为直接删了花心男的数据也只需时间复杂度o(n),不影响。
解法一:
这是最容易想到的一种方法,也就是遍历msgList,用一个countMap记录每个qqNumber出现的次数,然后遍历countMap的keySet,找出出现次数最多的那个qqNumber。
这种方法的时间复杂度为o(n),空间复杂度为o(n)。
解法二:
虽然上面的算法时间复杂度已经是o(n),但是很费空间,因为n不是个小数目。另一种方法是对msgList的qqNumber进行快速排序,由于情妇的qqNumber出现超过半数,则排序后数组的中数必定是情妇的qqNumber~~~问题解决~~~~
这种方法的时间复杂度为o(nlogn),空间复杂度为o(1)。
解法三:
好吧,上面两种解法都很不错了,但还能有更好的吗?复杂度为o(n),空间复杂度为o(1)的?
答案是,有的。
每次在msgList里面删除两个不同qqNumber,直到无法再删为止。由于情妇的聊天记录超过半数,所以最后生还的qqNumber肯定是她的。
这种方法的时间复杂度为o(n),空间复杂度为o(1)。
这道题竟然被我雪亮雪亮的双眼给硬生生忽略了,悲剧呀~ 不过后面JS的题目很容易,就一题,好像是遍历一个table,找出某个td,然后改变它的style——我就是靠这题蒙混过关的~估计考的是对语法的熟练度。
于是,我就踏上了前端JS的道路。
一轮面试
笔试完之后,我就去市区玩了,很不幸晚上错过了地铁,然后决定和同学在外面通宵。更不幸的是,我在当天很晚的时候收到了第二天早上9点腾讯一面的通知~[泪] ~震精呀~ 改卷效率也太高了吧~第二天一早就赶7点钟的地铁,赶到学校8点多,噼里啪啦刷牙洗脸换衣服,然后就“精神抖擞”的奔向面试地点(好在离学校近)。
面试地点是在华工酒店的客房里,环境蛮不错的(腾讯那几天把华工酒店的几层楼都给包了~有米)。面试我的是一个GG,年轻俊气的脸庞,温文尔雅,蓝色的Polo衫彰显着青春的激情与活力(拍个马屁,哈~)。
他像聊家常一样和我聊,主要通过我自我介绍的内容来不断挖掘更深的信息,各种技术社团、项目经历,不过没有很深的去探讨技术细节的东西。
后面聊开了就问我在前端开发方面的了解和积累。我就开始吹了(不过都是靠谱的吹),说了一些自己对前端工作的看法;说我平时很喜欢了解一些关于前端开发的理论与实践,一直有订阅博客的习惯,经常看UCDChina、腾讯CDC、淘宝UED的博客;还说有看过jQuery的源码,了解了它的实现方法;还说了自己在前端方面的一些小作品(真的很小~)……
虽然以前一直有接触前端的技术,也很感兴趣,弄过一些小作品,可是一直没有花大力气去研究。那个GG人很好,没有怎么为难我,如果那个时候考我一些JS的难题我还真不一定能过~
最后,他问我有什么问题问他,这个时候我囧了~ 木有想过~ 最后灵光一闪,问了一下他前端开发人员的职业规划,以及和后台开发人员的对比(后台开发以后可以有很多深入研究的方向,例如移动互联网、云计算、数据挖掘等,那前端开发人员的技术突破点在哪?)。虽然当初他的答案我不是很满意,但是我现在似乎已经找到了自己那个问题的答案。
他似乎对我印象很好,走的时候跟我握握手,暗示我“应该没问题了”。
回宿舍,倒头大睡~
二轮面试
一面后的第二天晚上,我收到了二面的通知,时间是26日上午10:00。面试我的是一个中年男人,估计是中层领导。他面试过程中一直满脸笑容,讲话和蔼,但总让我觉得有点笑面虎~哈哈~
他问的问题主要是结合自我介绍和简历来问。他会不断深究你讲的项目内容,例如对你影响最大的项目是哪个,在这个项目中做了什么,怎么分工合作,遇到最大的难题是什么,怎么解决,从中学到什么,这个项目对你以后的项目有什么影响等等。
问完项目之后,话锋一转,问我有木有学过C++——我说有,不过很久没用了,主要用Java。他又问,有木有学过数据结构——我说有。然后就出了道算法题考我,给了我纸和笔。
直接上题:
有个几十万个节点的单向链表,你如何判断它是否带环,如何找出环开始的节点。
这道题看起来简单,不过还是要想一阵子的,如果要找到比较优化的解法也不容易。好在,我之前做过~~
第一小问:
最简单的想法就是遍历链表,记录每个结点出现的次数,如果有结点重复出现,说明有环。
不过这个方法的很占空间,正确的做法是从链表头部放两个不同速度的指针(p、q)去遍历链表,p每次走一个节点,q每次走两个节点。
如果q到了链表尾,则说明不存在环;如果存在环,由于q的速度比p快,当p进入环内之后,q必定会从后面超过p,然后和p重合,两个指针重合则说明有环。
当p进入环内时,p和q之间的距离必定小于环的长度L,则L步之内p、q必定能重合,所以时间复杂度为o(n),空间复杂度为o(1)。
第二小问:
这就是个数学问题了,先说解法:设p、q相遇处为X,让p从x处开始,q从链表头结点开始,每步都走一个节点,相遇处则为环的开始节点。
原理如下:
设头结点到环开始点H的距离为h,环的长度为l,链表长度为L=h+l。分为两种情况考虑,一种是l>h,一种是l<h,前者比较容易明白,弄明白前者,后者也就好懂了。我就只说第一种情况的,l>h。
当p到达H时,q已经走了2h,此时p、q都已经进入环中。由于p、q速度不同,他们形成追赶,q到p的距离为l-h,也就是还要走l-h步才能相遇。设相遇点为X,则p从头结点到X走了l=h+(l-h)步,则离环的开始节点还有h=L-l的距离,也就是和头结点到环开始节点的距离一样。
后一种情况,l<h,只需将余数h%l弄清楚就可以了。
幸好之前做过,思路理顺了,不过也还是花了点时间的。期间面试官会各种打岔,问你各种性能,复杂度,有没其他解法的问题。
然后还问了一些个人兴趣爱好,有没女友,家庭情况,人生规划的问题。
然后是杀手级问题:我有什么问题问他~~~再次无语凝咽~~~又是用一面的问题混过去了~~~
最后握握手,say good bye,就回去等三面通知了~~
总之呢,平时多看书,多思考,多积累~~~
三轮面试
三面等的就相对比较久,好像是29号上午11:00去面的,是HR面,也就是最后一面了~那个HR面无表情,寡言少语,眼睛只看电脑,我那个压力呀~
不过问的问题都是兴趣爱好,有没女友,家庭情况,人生规划……只要没大漏子就行了……(据说有个大牛开口就是“我以后要出国”~
)
问了十来分钟,就say good bye了,饿了吃饭去~
等通知及其他
据说进了3面的大部分都能获得实习机会,所以我回去就没多想了,坐等消息。不过一等就等了小半个月,5月10号才收到录用函。实习期至少两个月,各种福利待遇还不错:每月有1400住房补贴(差不多够吃够住),有一次性600来回路费(省内),而且刚到的时候还有15天的酒店住宿(据说4星级),还有每月还有“业内富有竞争力的实习工资”。
这次腾讯的笔试面试还是蛮顺利的,而且腾讯还是我心目中非常向往的企业,实习开始之后一定会努力的!
相关文章推荐
- 2011腾讯笔试面试经历
- 各大计算机公司 笔试及面试 题目 - 腾讯 (HTTP 协议 二)
- 一份腾讯2011笔试题
- 笔试面试(1)腾讯2014校园招聘软件开发类笔试试题
- 【面试笔试】淘宝2011笔试题
- 2012九月百度人搜,阿里巴巴,腾讯华为京东小米笔试面试二十题
- 腾讯从笔试到面试
- [置顶] 2017腾讯暑期实习生从笔试到面试总结(附带华为、阿里面试经历)
- 【面试笔试算法】Problem 9: 腾讯2016年研发实习笔试题:最长回文子串
- 视觉计算/深度学习/人工智能 笔试面试 汇总(腾讯、网易、yy、美图等)
- 腾讯Web前端(Js)笔试面试之谈
- 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 腾讯 5.20 2017暑期软件开发实习生笔试+面试
- 各大计算机公司 笔试及面试 题目 - 腾讯
- 【笔试or面试】腾讯2014校园招聘(广州站)
- 腾讯2014年实习生招聘笔试面试经历
- 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 【笔试面试题】腾讯2013实习生面试算法题及参考答案
- 腾讯笔试,微软面试的一些想法