腾讯C++后台开发实习面经


一面:

腾讯会议,开视频,屏幕共享。面试官很温和的一个人,善于引导,面试体验很好。

数据结构:

面试是层层递进的,从一个问题一直往下引申。

链表

1.先介绍一下链表吧

链表分为单链表,双向链表,循环链表等等。提到了哑节点常用操作等等。

2.链表有哪些应用

回答了LRU、list源码就是链表,又说二叉树的左右指针可以看作特殊的链表,二者可以相互转换。
然后追问还有吗?
没想出来,提醒:约瑟夫环。

3.给一个无序链表,如何排序?

我说让我的话我用归并。

4.链表归并如何实现?

讲了一下,首先取中点分成两半....
然后追问,如何找中点?答:快慢指针及其如何实现

5.链表归并的时间复杂度


6.你排序之后,如何查找一个链表特定的值?

我说只能顺序查找,从头遍历,时间复杂度是O(N),然后我有说,这样太慢了,实际的话我可以用一颗红黑树把这些节点关联起来,如果需要顺序遍历就用链表方式,如果需要查特定的值,就用红黑树。

7.如何改进

面试官说,我接下来正要说如何改进,用红黑树当然可以,如果就是用链表呢?
我思考了好几秒,突然想到了->跳跃表

8.链表存储的值占用8字节,那么链表的空间利用率是多少?

我开始回答的是内存对齐问题和内存碎片问题,没回答到点子上。这个刚开始没弄明白,后来想,空间利用率就是元素的空间利用率,那么不光元素要占空间,指针也占空间。然后回答32位系统,指针占4字节,那么空间利用率是2/3,64位系统1/2。应该是对的。
好了,链表的连环提问告一段落。

哈希表

1.哈希表你如何设计?

2.解决冲突如何解决

开链法和再哈希法

3.哈希扩容如何设计?

准备两个数组,一个备用,扩容涉及到的各种问题,如何可以成功扩容,没空间会怎样,转移再哈希时要查数据时怎么弄等等,分类讨论.......

Redis的数据结构

有一堆key-values,用什么数据结构找出比如值是在区间3-5的所有key-values

我回答的可以用前缀树...这个虽然可以,但redis中用的是跳跃表。恍然大悟...

C++

我看你技术栈是C++,那就问几个C++的问题吧。
问了好几个,比较简单就忘了

1.虚函数

2.纯虚函数

3.派生类了如果继承了一个有虚函数的基类,sizeof一下是多大?继承了两个呢?

4.你是如何检查内存泄漏的?

这个回答的不好,有大佬帮忙解答吗?之前网上找的,并没有找到满意的答案。
我回答的可以用valgrind检查,还说了一下用智能指针等RAII机制防止内存泄漏。

5. 然后又问,你程序中就是用裸指针呢?有很多的类要用,怎么办?

我说new/delete成对用啥的...
面试官提醒:可以用个计数器?这问题不会...

操作系统

问啥忘记了

计算机网络

1.三次握手

2.第二次握手回复丢失会怎样

3.第三次握手丢失会怎样

4.介绍拥塞控制的慢启动过程

5.刚开始时拥塞窗口多大

6.慢启动什么时候结束,标志是啥?

7.慢启动的阈值如何确定的?

(第二次握手的时候协商的)这里没准备到

8.拥塞避免,阈值多大,怎么确定的。后续的阶段是怎样的?

9.poll和epoll区别

其他

1. #define和typedef的区别

2. 空类sizeof一下是多大?只有一个虚析构函数的类呢?

3.说一下后序遍历和中序遍历

算法题

1.用shell检测一个后台程序是否启动,没启动就输出警告并启动

这题不会..

2.字符串找里面有没有相同的字符

用哈希表做的

3.实现atoi,字符串转整数

要考虑多种情况

二面:

根据项目引申出来的问题,问的很多跟Linux操作有关。
  • 介绍一下项目
  • LT和ET模式的区别,在程序中怎么实现,吞吐量分别是多少?ET为什么效率高?服务器出bug了用的什么调试工具调试的?
  • 你的项目遇到的棘手的问题,怎么解决的。
  • cpu利用率怎么查看?我说用top,top有哪些字段?
  • 磁盘利用率和性能如何查看?
  • linux中open 和fopen的区别
  • 系统调用和C库函数的区别
  • http返回码5开头的含义,4开头的含义
  • static修饰变量和函数的区别
  • 出了一道算法题:给一堆二维坐标点,如何判断最大共线的点数
这些问题都能回答出一点来,但感觉回答的不好,本来以为要挂了...但过会就又发来新的面试链接,后面就是hr面了

#实习##面经##腾讯##C++工程师#
全部评论
您好,我想问一下这些东西的是怎么复习准备的呀?能指点一下吗?
3 回复 分享
发布于 2021-03-15 16:50
什么部门呀
1 回复 分享
发布于 2021-03-15 16:06
链表归并排序还是nlogn吧
1 回复 分享
发布于 2021-03-15 20:11
为什么我就没遇到问我这些问题的
1 回复 分享
发布于 2021-03-15 22:59
大佬,我面完一面后面试官跟我说三五天内等通知,现在快五天了,一直没回应是什么情况
1 回复 分享
发布于 2021-03-16 11:13
大佬,第二次握手失败会导致客户端发生什么啊,服务器端是申请资源,超时重连,超过默认次数之后释放吗
1 回复 分享
发布于 2021-03-16 21:07
天啊,实习都问这么难了
1 回复 分享
发布于 03-04 20:18 湖南
第二次握手不会协商慢启动阈值吧。。我用tcpdump抓包看过了
点赞 回复 分享
发布于 2021-03-15 17:18
链表node应该是结构体 内存对齐应该取决于最大的变量吧 那感觉32位也是1/2
点赞 回复 分享
发布于 2021-03-15 20:17
第六 跳表或者类似lz说的用map做冗余
点赞 回复 分享
发布于 2021-03-15 20:47
点赞 回复 分享
发布于 2021-03-16 00:05
问下大佬,后台开发linux需要怎么学习呀,要学会编程嘛?还是说基础指令掌握好就可以
点赞 回复 分享
发布于 2021-03-16 01:16
teg下面的什么部门
点赞 回复 分享
发布于 2021-03-16 08:54
大佬,请问一下hr面之后那个录用报批会综合我的三次面试来评定是吗?我投的是暑期实习。
点赞 回复 分享
发布于 2021-03-16 09:17
请问腾讯暑期实习只能投一次吗?
点赞 回复 分享
发布于 2021-03-16 09:44
哇这待遇,面试官亲儿子级别的😭我咋就遇不上这种
点赞 回复 分享
发布于 2021-03-16 09:49
大佬总共三轮技术面面
点赞 回复 分享
发布于 2021-03-16 11:05
问下楼主计算机网络第8问,拥塞避免有阈值吗?不是可以一直增大,直到超时或冗余ACK吗?
点赞 回复 分享
发布于 2021-03-16 20:47

相关推荐

评论
34
244
分享
牛客网
牛客企业服务