腾讯面试小经验(一)
这两个月找实习真的是找的要死要活,忙的就叫一塌糊涂!好歹最后腾讯收了我。接到腾讯电话也有几天了,小小高兴了一把。兴奋头过去了,也该做做样子留个面经啥的(哈哈,开玩笑的,多总结一些经验吧)。
我是在长沙面的试,下面的情况都是以长沙为准的哈。
招聘的岗位:应用开发
腾讯招聘流程简介:一轮在线笔试、技术面两轮(初始和复试)、一轮HR面试。
机试:3月27号,就是在清明放假的第二天。在正式考试之前有一次模拟考试,正式考试的题目选择题涉及的面很广,算法、数据结构、操作系统、计算机网络、编译原理等等基础性质的都有可能会考。(感觉就是这些大公司的机试都是外包给其他专门做机试的公司,至于里面的题目是不是腾讯本公司自己出的就不清楚了)当然网上还有很多网站可以去参考往年的机试,像啥牛客网。
一面:说真的,机试过去快一个多月,而之前有一批同学都已经去武汉面试腾讯了,我没收到去武汉面试通知以为自己机试八成是挂了,也没想着还有机会去腾讯,但在4月23号却意外收到腾讯26号面试通知的短信。当天驱车赶到万达文华酒店,本来提前了40分钟,可是刚要在座位上坐下就被喊到去面试!
面试我的是以为比较年轻的学长,但看起来很严肃,我也努力的使自己镇静下来。简单的介绍完自己之后,下面是我记得比较清楚的几个问题了:
1、 给你两个链表,如何检测他们是否重合?
(本身这个问题的是挺简单的,之所以要花点时间介绍是因为要注意如何在很紧张的情况下回答面试官问题。自己当时就是在脑子里面一片空白,什么都不记得。在这种情况下就要注意如何回答面试官的技巧了,首先不要表现出紧张,如果真的是没有碰到的问题,诚实地告诉他自己没有研究过;但是如果是算法这类自己很熟悉,只是没碰到一模一样的但解题思路都差不多的问题的时候,就不要直接说不会,要把自己学过的东西展示给他看,尤其是要把自己的解题思路一步步展示出来,面试官想要从中看出的是你面对陌生问题的处理能力、你解决问题的能力。只要你有思路,他知道你在思考,他会和你互动、会给你提供建议,你就要勇敢自信的展示自己解决问题的过程。)
一上来本来就挺紧张的,还直接就问我算法,一下子有点方。虽然有印象这个算法,但是真的一时记不起来了,虽然如此,自己还是硬着头皮把所有学过的算法知识用上去尝试解决,学长很容忍我,给了我很多时间,真的非常感谢他!然后我一步步要尝试解答,最终尝试的几个有效的算法说给他:(1)将第一个连链表的链尾连到第二个链表的链头,再利用一个遍历速度为1的指针,一个遍历速度为2的指针,检测是否出现环,如果有,则表明有重合;(2)他问我有没有更简单的,然后想了一会儿,不确定的说,我感觉其实只要检测两个链表的最后一个节点就可以判断是否重合呀,他说对!(顿时我晕!!,怪自己太傻);(3)接着他们如何两个链表本身就有可能存在环怎么办?有了第一个想法的支撑,这个问题也就迎刃而解了:可以计算得到他们一开始出现环的位置,如果在环外重合,出现环的位置相同;如果在环内重合,则往后遍历第一个链表出现的位置会遇上第二个链表出现环的位置;否则在检测最后一个节点。
如果要说自己面试有什么亮点的话,回想起来只有在回答这个问题的时候可能引起面 试官兴趣了,自己比较冷静、想法比较多、临场发挥不错。
2、 做过web网站吗?介绍一下项目。介绍一下Session和cookie的区别。
3、 都学过哪些设计模式?简单工场和抽象工场的区别?
4、 死锁与阻塞有什么区别?
5、 都用过哪些数据库?给你一个数据库,如何让数据库操作出现死锁?
6、 给你一个任意的树结构,你要怎么设计数据库进行存储?
问题2-5都是可以在很多面试宝典上找到的,我就一一说了;
至于问题6,应该是设计的表中字段有key值和父节点的值。
接下来就是常规环节回问题了,我看他很年轻就咨询了一下他什么时候进入腾讯的,在腾讯感觉怎么样云云。然后我就出来了,感觉自己答的真的不好,而且学校的很多同学都不幸挂了,自己感觉肯定没戏了。就忙着第二天的考试,没想到快到晚上七点时候,接到了复试通知!