腾讯后台开发面经

本文分享了腾讯后台开发的面试经历,详细解答了一面和二面中的算法、C++语法及项目相关问题。面试涉及查找大文件中位数、不重复字母位置、平衡二叉树判断等题目,以及C++的传参方式与内存问题。二面增加了笔试题和设计题,要求实现string类和设计高并发的定时器系统。
摘要由CSDN通过智能技术生成

一面(约50min)

问题

1.没有自我介绍,直接针对项目提问。问项目整体实现了什么,实现流程是什么样的,我所做的工作在哪个环节。目前你的项目所做的设备在一台pc上同时只使用一台,如果要同时支持多个设备怎么做。
2.算法题
如果有一个几个G的文件,存储了uint32的数据,在内存不够大不能一次性读入所有数据的情况下,怎么找出中位数。
3.算法题
给一个只有小写字母的字符串,找出不重复的字母中,第一个出现的位置。
4.C++传参方式有哪些?值传递会默认拷贝,如何避免?
5.常见的内存问题有哪些

解答

如果有一个几个G的文件,存储了uint32的数据,在内存不够大不能一次性读入所有数据的情况下,怎么找出中位数。
读入文件找出最大最小值统计数据量,根据最值均分为多个区间,统计每个区间的数据量,然后根据个数确定中位数应该在的区间,排序。
面试官提出的改进: 可以直接将uint32的区间来划分区间而不找最值,数据量可以根据文件大小和uint32的大小计算

给一个只有小写字母的字符串,找出不重复的字母中,第一个出现的位置
用数组统计字母出现次数、第一次出现位置,找第一个(这题比较简单)
注:这里用了vector,面试官问了为什么用了vector而不用数组,我这里只考虑了代码写起来更方便

C++传参方式有哪些?值传递会默认拷贝,如何避免?
值传递,指针传递,引用传递。(没有查到如何避免值传递使用默认拷贝函数的方法,但重写拷贝函数应该可以)

二面

问题

1.三道笔试题
1)判断一个树是否是平衡二叉树
2)单链表归并排序
3)n*m螺旋矩阵
2.介绍一个自己的项目,项目相关提问
3.两道C++语法题
1)

void func(char ptr[100])
{
   
	int ptrlen=sizeof(ptr);
	printf("%d",ptrlen);
}
int main()
{
   
	char chptr[100]<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值