腾讯TEG一面(电话面试)

上个月16号投的TEG后台开发,然后简历就被锁了,“未发起面试”。27号更新简历状态已灰,郁闷了一天。本以为今年暑假已和腾讯无缘,今晚在家楼下散步,接到了深圳的座机,被TEG 运营开发团队捞了,选个安静的角落开始了电话面试。

1.自我介绍,知道我是通信,问了下我们和计算机专业课的区别,说主要问下我基础(还挺体贴~)

2.总结下,问的最多是操作系统,然后是数据结构,简单问了下计算机网络,最后给了三道算法题,让我给出最优解。

3.讲一下进程和线程的概念;

4.进程的fork()函数功能,写时复制?

5.说一下c++的内存分配/内存管理

6. Linux进程的状态。还问了三个c++问题都不太会...还不记得了

7.(数据结构)现有一串qq号,要在数亿的qq号中确认是否存在它?用什么数据结构可以达到时间复杂度、空间复杂度最优?

(时间复杂度,我说用关联容器map,他说可以,map能实现时间复杂度O(1)。空间复杂度我说 RB-tree,他说不对,要把海量qq数字写进树,复杂度是很高的......)

找了下海量问题的博客: https://cloud.tencent.com/developer/article/1558259

8.有一串数字,里面有许多个两两相同的数字,只有一个数字是只出现一次的,请问怎么找到它?

(通过异或的操作,因为两个相同的数字异或为0,那么将他们一一异或,最后剩下的就是那个出现一次的数)

9.接着问,如果改成有两个数只出现一次,那么怎么找到他们?

主要思路:根据异或运算的性质:数字异或它自身等于0。若数组中只有一个数字出现一次 ,其他数字都出现2次,那么从头到尾异或数组每个的数字,则最后结果就是只出现一次的数字。
  相同的思路,若能把当前题目中的数组分成两个子数组,使得每个子数组都包含一个只出现一个的数字,其他数字都成对出现,则分别对两个子数组所有数字进行异或运算,就可以得到所求两个数。拆分原数组过程:异或原数组中的所有数字,得到一个非零数字a(即为两个只出现一次的数字的异或结果,其他数字都抵消了),从右向左找出a中第一个为1的位数,所求两个数在该位数上肯定不一样(位数异或为1,说明位数的值不相同,),以该位数是否为1作为划分标准,把原数组拆分成2个子数组,则所求两个数分别在这两个子数组中。关键点是异或运算的特点,数组拆分 。总结为:

(1)将整个数组异或,异或的结果为俩个单独数字异或的结果
(2)求出这个结果中从左往右的第一个为1的比特位,记为pos
(3) 再将数组中的每个元素都右移pos位与1,这样能使pos位相同的元素分到一组

10.(计算机网络)在浏览器输入网址访问服务器,用到什么协议?具体过程是?

11.解释tcp的滑动窗口机制,具体点,它的阈值是怎么设置的?

12.问问题。我问引力计划可以照顾非科班生嘛,面试官说是一样的标准,而且我也不算非科班生吧,我解释下自己的项目不够丰富。还问他TEG是给其他部门做技术支撑嘛?感觉问的挺蠢的嗐

总的来说,面试的时候有些问题很基础,应该回答的更深入更全面,以后要多注意对知识点进行总结。能够被捞还是挺开心的吧,继续加油,看下有没有二面的消息。

 

 

 

你可能感兴趣的:(面试)