腾讯|C++|面经|2021|
9493
2020.10.19
2020.10.19
发布于 未知归属地

qq会员.jpg


今天讲下鹅厂的面试经历,希望可以对大家有点帮助,能做一点微薄的贡献

首先介绍下自己的情况吧,985硕(科班),没论文(没投出去),没项目,本科有竞赛经历和奖项(ACM)。但是也抵不住菜和大佬们的碾压。。所以算法转c++,但是还是花时间准备了下。
准备的内容包括:C++ primer,STL源码剖析,计算机网络,Linux,OS,数据库,设计模式,还有就是leetcode重点的刷题,剑指offer和自己看面经总结的一些常考的类型。
自己在准备前根据别人的面经,整理了学习的一个线路图,根据大佬的面经,先重点突破比较高频的问题,再慢慢深入的看其他的内容。因为自己没有项目内心还是挺虚的,不过还是鼓励自己打这些基础知识搞劳碰碰运气吧,冲就完事啦,怂就啥都没啦

笔试情况:
参加了腾讯校招的笔试 ,校招笔试 4.6/5,5题做了4.6,有道DP题感觉是哪里溢出了没处理好吧。
题目大概是考察简单的字符串处理,并查集,比较简单的思维题,逆序数+动态规划,当时做到最后一题的时候有点惊讶,因为感觉这道DP题挺难的,状态转移很难推,而且要用树状数组优化。之后在力扣居然看到有人给的题解,大家可以看看https://leetcode.cn/circle/discuss/T8H43C/
当然我们只要把比较基础的笔试考点掌握好,练习个几百道,应该4题是没有问题的。后续面试的时候感觉手撕的题目感觉差不多是力扣中等左右难度。。。。
小总结:刷题不能侥幸和偷懒,万一问的问题没答上,代码也没撕出来,就有点尴尬了。。。。。

面试情况:
其实几轮下来问题的问题都是那些,不过考察的范围和深度还是有的,每个面试官问的范围和深度都是不一样的,不好好准备的话,就很容易成小哑巴了,不过面试官还是很友好,知道没有项目,没有问的很深。
一面,还是比较紧张,因为我没有项目啊,所以想着能不能再其他方面稍微顶住。一面上来先自我介绍一下,把简历上的东西,简单说了下,然后聊了下为啥转方向啊,然后开始问问题啦,基础知识问的比较多,主要集中在C++,操作系统和网络,数据结构问了快排和树的几个算法+手撕代码。
除了Hr面,后面几轮,大体都是这个流程。

一面:

1.类默认的构造函数 
2.构造函数有几种,构造函数可以是虚函数吗?
3.只定义析构函数,会自动生成哪些构造函数。
4.STL配置器 ,STL容器动态链接
5.虚函数,友元函数
6.C++11新特性
7.AVL和红黑树
8.快速排序讲原理
9.MySQL两种引擎的区别
10.共享内存的进程间通信方式
11.死锁的含义、死锁产生的四个必要条件、死锁的产生原因、预防死锁的算法(银行家)、如何解除死锁、死锁的种类
11.TCP三次握手、四次挥手、TCP/UDP区别、套接字编程的一些接口函数等
手撕算法:循环数组最大字段和(dp),给定活动开始与结束时间,求最大不冲突的活动数(最大不相交的区间数:https://leetcode.cn/problems/non-overlapping-intervals/
手撕比较快就秒了,感觉面试官提升了印象。问了问,在学校主要做的什么,为什么要转c++,扯了点其他的东西。

二面:

竞赛经历:
按简历上说

C++:
1.C++容器底层原理,迭代器失效。
2.STL线程库里的锁。
3.C++内存泄漏
4.C++多态

数据结构:
1.树的特征,B树B+树的区别,他们两个在应用中的例子
2.说一下邻接矩阵和邻接表的区别

操作系统:
1.进程的状态,以及进程生命周期流程
2.进程之间调度问题
3.进程通信的方法,共享内存的特点,具体的应用场景,管道通信拥塞怎么处理
4.IO模型——阻塞、非阻塞,同步、异步的区别。

网络:
1.滑窗机制
2.DNS的解析流程
3.HTTP和HTTPS的区别

数据库:
1.MyISAM和InnoDB区别
2.MySQL的两种引擎,它们之间的区别

Redis相关:不会。。。。
了解其他开源项目:呃。。。。
千万级数据求前k:说了堆和分治,讨论了下复杂度
赛马问题:讲了下锦标赛排序的思想

手撕:
1.求逆序数(用树状数组+离散化写的) 面试官:嗯?好像不错。。。
2.树中最大距离( DP解决, 看了下力扣上就有啊,https://leetcode.cn/problems/diameter-of-binary-tree/

感觉准备的不太行啊,有些答不上来,场景题差不多都能答一答,手撕题差不多都能比较快的写好,弥补下印象。。。。

三面:

1.问的基础知识和前面差不多,不过往深的方向问了,和你讨论细节一些的东西。
(1) Set底层如何实现
(2)用户态、内核态的区别与意义
(3)事务的特性,事务的隔离级别
2.转方向后的学习规划,有没有看过源码啊,关注哪些开源项目。。。
3.手撕:
(1)最大矩形面积(类似这个:https://leetcode.cn/problems/largest-rectangle-in-histogram/) (2)滑动窗口求满足条件的最小区间

HR面:
了解你个人的一些问题啦,记得大概有这些
1.研究生的期间的学习情况
2.个人,家庭情况
3.是否有其他offer
4.期望薪资

总体感觉注重基础,要好好花时间准备。面试官都很好,答不上的话会引导你,虽然菜吧,体验还是比较好。代码题目都能较快撕出来了,面试官对这点的印象不错吧,所以没项目就往其他方面上聊了。

评论 (6)