因为自己有一些Android开发的经验,在腾讯校园招聘上投了移动客户端开发的岗位。
隔了没几天,下午6点钟,腾讯面试的电话打来了。面试官是个声音听起来很年轻的男生,感觉也就比我大几岁,说话很客气,跟我约了晚上9点钟电话面试。
面试内容
首先,是让我简单地介绍一下自己,然后看到我简历上写的硕士阶段研究方向是推荐系统,就开始问我论文方面的问题。其中主要问到数据集有多大,跑实验需要多长时间,改进的思路是什么。此过程持续约20分钟。
然后问了5个基础题目:
1、static静态变量
我:在C++中,静态成员变量是属于整个类的,它被该类的所有对象共享。而对于普通的成员变量,每个对象都拥有自己单独的成员变量。
面试官:嗯,你这里是以C++为例是吧。
(然后此题就到此为止了)
2、std sort函数的时间复杂度
我:这个我没有去了解过sort函数内部是怎么实现的。
面试官:那你猜猜看
我:那应该是介于O(n*log)和O(n2)之间吧。
面试官:那你猜猜具体是多少
我:我猜可能是O(n*logn)吧,毕竟快速排序是效率比较高的。
(此题结束)
3、TCP连接过程
我:TCP连接有三次握手,第一次A向B发送连接请求,第二次B回复A一个肯定的答复,第三次,A向B发送数据。
(这个题目完美答错,现在想起来都觉得尴尬)
4、哈希表处理冲突的方法
我:我只记得一个方法是如果有冲突的话,将散列地址相同的数据形成一个链表存储。
面试官:散列表查找的复杂度?
我:O(1)
面试官:那如果按照你刚才解决冲突的方法构建散列表,最坏情况下查找复杂度是多少
我:O(n)吧
(此题结束)
5、操作系统进程间通信方式
我:(完全忘记,临时百度,随便答了其中一种)共享内存