2014腾讯校招面试之一总结

今天我去了腾讯一面,面的是后台开发方向的,感觉不太好啊,可能要被刷了,不过刷归刷,经验总结还是要写一下的:

总体感觉腾讯问的问题不难,只不过我太水而已,没有深入研究某些问题。

一开始进入面试场,先自我介绍一下,然后面试官可能就会根据你的介绍开始插入谈话,这样就算正式开始技术面了。

面试官问我的第一个问题是:

问题1:怎么在linux下查找一个文件中有多少个给定的字符串

答:这题本来想考察我的shell编程的能力吧,不过我说这个不会,然后他问我如果写程序实现呢

我答我会用trie树去记录字符串出现的次数

然后有被问道更深入一点的,如果文件过大呢?

我答,那就把文件内容hash取模分成多个足够小的文件,然后每个小文件trie记录结果,输出一个小文件,最后把所有结果文件合并就可以得到最终结果

问题2个整数集合,找出他们的交集

        我的回答是这样的:如果对于数据较小(10W以下)我会采取哈希的方法去求数集较小的那个集合的hash值存在hash表中,然后对另一个表中每一个数进行hash,如果在hash表中找到则这个数是交集的数,输出。这个算法时间效率是O(n+m),空间效率O(3n+m);(因为hash几乎浪费掉一半空间)

        对于大数据,我则先把数据hash%100的样子分到许多个小文件中,然后对这些hash值的次数建立一颗二叉查找树,遍历另一个集合的数来找,找到一个就输出一个,最后得到集合数。算法效率是O(n/100*m*log(n/100)),空间效率O(n+m)

       之后,面试官见我多次提到二叉查找树,就叫我

        问题3:写二叉查找树的查找算法,答案就不写了,简单。

写完之后,面试官又问我由这里到一个什么地方的,要求最短时间,怎么求

这个就是问最短路算法,我就答了这个,然后他又问我怎么知道去的路径通不通,我答用传递闭包去计算,

他问我如何传递闭包,然后我就画图演示了一下这个过程

问题4:进程与线程的区别

这题我答得非常不好,我只答了进程有资源,线程没资源,进程个数有限,而线程的个数几乎不限,进程的调度慢,线程的调度快这些基础点

但是被问到为什么进程调度比线程慢时,我答不出,我答是因为用户态和内核态的转换造成的,但是百度一下,答案应该是因为线程调度是在进程中进行,在同一存储区内操作,而进程则在不同存储区操作,所以进程调度数度比线程慢

问题5:问我TCP/IP有多少层

我答OSI标准有7层,但是目前工业大多使用5层的标准,然后回答了一下这些标准,我只会答5层标准的那一个。。。

接着又问我IP层(网络层)的作用

我答了很多,又说了什么TCP、UDP的,然后在面试官的知道下,我才答出,网络层的作用是映射作用,主要是IP和MAC地址、端口的映射(我不知道对不对。。)

接着又问我TCP和UDP的区别

我就答,TCP是有连接的,UDP是无连接的,TCP通过三次握手保证数据的可靠性,UDP则没有

最后还问我滑动窗口的东西,我就答了滑动窗口是为了保证数据被客户端正确接收了,他又问我为什么能保证,然后我就画图演示滑动窗口的发送、接收、移动过程

问题6:写一个函数,计算给定的一个整数中有多少个0,这个简单,不多说了


经过这次的面试,我总结如下:

1.准备要充足,多打听一些已经面试的人面经

2.对于热门问题,准备的时候要深入研究一些点,不然很容易被人问倒,比如我被问到进程和线程区别那里

3.简历上写的东西很重要,几乎你简历上写什么,面试官就会问你什么,比如我简历上写我数据结构、最短路径、字符串处理方面学得比较好,他就问我这些算法了

4.提前到面试地点,对面试官礼貌


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值