313腾讯面试凉经&反思

本渣3月9号做了腾讯后台实习笔试,由于算法能力太渣,只AC了两题,第三题过60%(后来听说第五题直接输出0都能过40%。。。),本来觉得肯定跪了,结果3月12号收到邮件通知,约13号上午视频面试。

视频系统跟头条一样,用的牛客网的。

面试题目如下:

1.自我介绍

此时面试官提到部门主要用C++(我主要用Java),接下来的面试题会考C++,还问了我未来的规划,我表示C++还是会一点的,可以试试,如果公司需要,转技术栈也可以

2.计算机网络:

TCP三次握手,四次挥手过程(这里我还解释了一下为什么要等待TIME_WAIT时间),TCP与UDP区别,TCP流量控制原理

3.C++:

指针和引用,类和结构体区别,内联函数,STL,堆栈(C++内存空间不熟,询问能否讲JVM的内存空间,面试官改问数据结构)

4.操作系统:

进程间通信方式(信号量、管道、消息队列、共享内存、套接字等),哪种效率高(内存映射),进程和线程的区别

5.讲下常用排序算法

说了冒泡、堆排、归并、快排、选择排序,又问了冒泡、堆排、快排的复杂度

6. 现有5亿QQ号数据如何排序

我的回答是分割成小块数据,每小块分别排序,然后合并结果

7.给了一段代码计算结果

代码大概如下

int calculate(){
    int countx=0;
    int x=9999;
    while(x){
        x&=(x-1);
        ++countx;
    }
    return countx;
}

看过剑指Offer就能想到,这是计算二进制表示中1的个数。

8.如何找数组内第二大元素

我的回答是用两个指针,一个记录最大值,一个记录第二大值,当最大值更新时,把之前的最大值赋给第二个指针

9.leetcode两数相加II

这题之前没刷过,没做出来,而且表现不好。

首先是太过于纠结性能,只想着用常数空间解决,实际上面试官之前问了栈,也算是提示吧,但是我没想过用辅助空间解决。

其次是没有跟面试官进行任何讨论就开始写代码,面试官还问了我:“你都不跟我讨论一下就开始写代码的吗”。

没做出来+不想就写,应该是给面试官留下了不好的印象。

 

上午11点面完,面试官最后表示“今天就面到这里吧”,听到就知道凉了,下午两点左右一查已经灰掉。

这次面试失败的原因我自己觉得有以下几点吧:

首先是笔试成绩太差,做完在牛客网讨论区一看,一群4AC 5AC的大佬,我这种2AC的确实很难走下去。

其次是C++基础不够,虽然说面试官问的都回答了,但是事后百度一下,就发现自己回答的还是太浅薄,公司也不是做慈善的,比起招一个技术不熟的人进去半学半做,当然会倾向于选择技术熟练的。

最后也是我自己认为最大的问题,就是太过急于回答问题。比如说两数相加II这题,如果能够和面试官确认可以使用辅助空间,想到用栈解决还是不难的,再比如5亿数据排序这题,我也是听完题直接就开始回答了,昨晚有同学看到我发的说说,来和我讨论,我才发现很多地方我都没去考虑,答案很显然不能让面试官满意。

面完试继续刷剑指Offer的时候,正好看到第四章,开头的“面试官谈面试思路”就提到:

一个合格的应聘者应该在他做事之前明白自己要做的事情究竟是什么,以及该怎么做。一开始就编码的人员,除非后面表现非常优秀,否则很容易通不过。

感觉说的的确很有道理,通过和面试官讨论,询问各种条件,其实也是向面试官证明,自己的思考很缜密,比如说对边界问题(空值、零值等)的界定,可以证明自己对异常情况有思考和把控,对于时间和空间性能的界定,不但证明自己编程时有优化的思想,像两数相加II这种题,还可以得到启发。

这次面试虽然最后凉了,感觉还是有启发的,后面继续投简历的时候,还是首先尽量投技术栈相合的,其次我本身算法水平不足,最近还是要多刷题,最后在面试的时候尽量絮叨点,多跟面试官讨论。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章