措手不及,内推面试就开始了,那就开始吧,心里想着还没准备好呢,其实我知道,永远也没有准备好的时候,顺其自然就是最好。
电话一面
项目:项目背景,我的工作,难点;
计算机网络:Ping,Traceroute的底层实现方式,TTL;TCP的三次握手,四次挥手,TIME-WAIT为什么是2MSL;
操作系统:Chrome是多进程还是多线程;多进程和多线程的区别,多线程中哪些资源是共享的,哪些是独有的;写过多进程程序吗,谈谈要点;内存管理,Linux的5个段:BSS段,数据段,代码段,堆,栈;
C++:虚函数的实现机制;deque的实现机制,索引管理方式;map的实现机制;
算法:一组数,其中有一个只出现一次,剩下的都出现两次,找出这个数;一组数,其中有两个只出现一次,剩下的都出现两次,找出这两个数;一组数,其中有一个只出现一次,剩下的都出现K次,找出这个数;快速排序的空间复杂度O(log n);
腾讯体育现场一面
基本功:给了一页多代码,读懂并分析讲解给面试官听,涉及地址分配,lock等;
C++:char * pc = "test"; 如果把warning等级开到最高会报什么警告;
Python:写一段简单的Python闭包代码;
Linux:解释一下KISS;
数据库:Redis用在什么场景,用什么数据类型;
算法:实现一个函数,求斐波那契数的偏移量(e.g. 1,1,2,3,5,8... 输入1返回0,输入2返回2,输入5返回4,输入6返回-1);
腾讯地图LBS现场一面
做了一个小时试卷:1,一堆三维空间的点,找出距离小于d的点对;2,角度是在[0,360)之间的实数,需要转换为离得最近的45的整数倍的整形角度,如果离的一样近,取角度高的那个,模拟题,比较简单;3,地图APP反应的路况(畅通,拥挤等信息)与实际不一致的原因有哪些;
面试官面试:数据库问了MySQL的引擎;然后又是一道算法,从起点到终点有多条路径,用路段表示,如ABCD,ABEFGH等,求这些路径中的分叉点和交汇点,这个题目其实很简单,维护两个map,一个用来记录某路段的前驱路段,一个用来记录某路段的后继路段,如果前驱有多个,则说明此路段为交汇路段,如果后继有多个,则说明此路段为分叉路段。