后台开发C++|2021秋招面经分享
图森未来 一面 8.9 1h
一、算法题目
1、给定一个数组,求解从头开始的连续子序列的和,或者从尾巴开始的子序列的和最大,转化为DP 做
二、基础
1.柔性数组
2.redis 的发布订阅
3.模板
4.Linux 系统执行程序,想退出,继续执行程序(守护进程)
5.svn 提交一次代码的过程
6.字典树的插入操作
算法题我没想到用DP转化,用前后缀数组和做的,感觉后半程面试官气氛不对,后续凉凉~
网易 一面 8.30 1h
1、写题:LRU
2、bash 脚本实现简单的KV 数据库,问有啥优化吗
3、项目+八股文
自我感觉良好,两天后凉凉~
巨人网络 一面 8.13 30min
1、进程通信和线程通信
2、stl 三种map
3、常见八股文
巨人网络 二面 8.24 1h
1、C 语言的空类和C++ 的空类
2、auto it = cons int &, it 是啥
3、STL的find函数的原理
4、STL的sort函数的实现,是否是稳定排序
5、手写KMP
6、父类指针和子类指针的比较
7、字符串匹配的BM算法
反问:游戏服务器开发和服务器开发的区别
1)游戏开发的数据多在内存中,正常服务器开发数据大多在数据库
2)正常服务器开发多是一问一答,游戏开发开发交互流程不同,很多主动推主动拉
巨人网络 HR面 9.2 10+min
1、玩不玩游戏
2、为啥投游戏开发
3、测试很无聊怎么办
4、优点
5、同学怎么评价你的
6、介绍巨人福利
感觉HR对我不玩大型游戏有顾虑,等HR面结果
9.10 收到意向~
商汤 一面 8.4 1h
算法题目:
在二维有序矩阵查找是否有targer、链表反转,N 条直线切割最多的空间数
1、类的可变参数模板
2、C++ 的类型转换
3、lambda 表达式
4、内存泄***r>5、内存对齐
6、C++ 内存分布
7、指针和引用
8、int float double 判断是否等于0
9、互斥锁的机制
商汤 二面 8.9 30min
1、项目
2、系统调用
3、epoll
二面没问啥
商汤 三面 8.16 1h
项目问了很多
基础:
1、问了进程和线程的创建和管理方式以及开销
2、linux的pthread_create 和 c11 的区别
反问:工作选择
面试官说了以后发展的影响因素
1)方向选择:第一份工作关键,决定以后的主线,和原始努力在那里
2)行业选择:技能不一定依赖行业,行业价值决定薪水
3)主要的差距:自己的投入和努力,面先做深,点要做广
介绍商汤:
层次结构:硬件、操作系统(linux)、驱动、端+云(AI算法)+APP
目标是:智慧生活、智能处理、自动驾驶、医疗
补了一句:互联网的发展不好说
说做到陌生的领域对于个人成长和公司的发展都是好事,有利于个人成长,以及找到公司业务的衍生机会
商汤 四面 HR面试 8.20 30min
1、为啥选择商汤
2、自己三个优点
3、自己的缺点
4、校招生在北京能接受吗?
5、已经拿到那些Offer了?
6、还准备面那些公司?
已OC, 等意向~
百度一面 7.29 1h
算法题目:
1.二叉树的右视图
2.给定一个数组,多次查询[l, r] 查询区间内有多少个等于k
基础
1、redis 替换策略
2、智能指针
3、redis 的事务和mysql 的事务
4、redis 单线程还是多线程,多线程解决啥问题
反问:
看重:沟通是否流畅,是否聪明,基础是否扎实(C++、数据库、缓存、分布式)
百度二面 8.3 45min
算法:
说了一下一面的算法题目
基础:
1、LRU、LFU
2、主从同步,提了一句全量复制
3、protobuff
百度三面 8.10 30min
问了项目
建议实习,交了三方工资实习工资是正式的90%
反问:
1、业务和技术同样重要,技术做强最后都是相通的,站在高位的人都是业务行技术行的人
2、频繁跳槽不利于自身职业发展
百度整个面试体验很好,面试管又强又谦和,已OC, 等意向~
9.14 收到意向书~
字节一面 8.5 1h
算法题目:反转链表
基础:三次握手,第一次SYN 没有接收到,会怎么样?
字节二面 8.10 1h20min
算法题目:
1.反转链表
2.合并两个有序数组,一个数组已经申请了两个数组的空间
3.栈和排序
基础:
1、哈希表扩容(没答好)
2、socket 的函数,以及具体参数(具体参数不太知道)
3、内核态和用户态的通信方式
4、说一下系统调用
5、还知道那些不需要加锁的并发机制
6、CAS 的原理,是乐观锁还是悲观锁?
7、乐观锁和悲观锁
8、Atomic 的原理(没答好)
9、知道RCU(Read copy Update)吗
字节三面 8.24 40min
算法题目:
输入流的中位数
1、并发和并行
2、实际一个业务场景,(读1000个文件,open, read, 正则匹配检查是否有某一字段key,关闭文件),4个核,和一个核的性能对比
反问:
互联网发展目前更像基础设施,类似于社会分工
第二天收到意向~,真的快
WXG 一面 8.12 1h30min
一、算法题目
1)求解链表的倒数第K个节点以及反转链表
2)判断是否是镜像二叉树,以及输出满足镜像二叉树的最大深度
3)n个小文件以及数组s[] 记录每个小文件的大小,和磁盘大小c, 计算如何放入小文件是的磁盘剩余空间最小,输出数组r[],r[i] 为true 表示第k个文件放入,false表示不放入。
PS: 是用腾讯文档30分钟写三道题目,我有点慌,实际是大概40分钟+,第一道题目是分别写的,第三道题目当时写的DFS,最优是DP。有点自责~
二、基础
- IO 复用,select 、poll、epoll 的原理
- tcp 慢启动
- 如何解决tcp 惊群问题
- 如果网络环境不好,多次建立断开连接,是否会每次都采用慢启动
- 上题的问题背景下,如果tcp 没有响应的措施,可以怎样实现
面试管提示:应用层用UDP 封装 - B+ 树和红黑树的原理和应用
三、项目
问了访问控制,和内存回收
四、其他
问了能否来实习
问了腾讯的印象以及微信的印象
问了现在主要在干啥
问了是不是刚开始面试
反问
WXG 二面 8.17 1h30min
一、算法
1、链表大数的相加,不同的是带了符号位,输出也表示为符号位。(直接模拟的,符号位处理没想到优雅的写法)
2、公司裁员问题:裁员希望得到最大收益(相同收益情况下,取裁员最少的方案),给定员工收益数组benefit[], 员工有上下级关系,如果员工的所有直接上级被裁,则员工也要被裁(假设员工只有一个直接上级),给定vector>relation 表示上下级关系,计算最大收益和裁员人数(直接暴力模拟,写的有点问题)
3、平均故障间隔时间:一个系统有N个模块,每个模块的平均故障间隔时间是 数组,问系统的平均故障间隔时间(没懂,,,)
二、基础
1、socket 编程的函数
2、三次握手,客户端最后一次握手丢了,服务器和客户端两方处在于什么状态?
提示我用滑动窗口处理
3、如何很多个用户的最后一个握手的ACK 都丢了,服务器怎么办?listen的backlog 决定
4、MQTT , atmostonce 和 at least once
5、epoll
6、边缘触发和水平触发
7、hello 在linux 中执行过程
8、阻塞IO
三、项目
1、设备上线提示
2、状态链表根据超时时间排序
WXG 三面 8.31 2h20min
项目30min + 5道算法题(一个半小时)
平台是codeinterview,自己要写样例测试,以通过样例为结果,不能用自己的编辑器
1、链表相加,16进制
2、计算二叉树根到叶子的路径和是否有等于K 的,不能用遍历
3、分数转小数
4、LRU,计算缺页次数
5、leetcode 93, string 转 IP
基础:
1、三次握手异常都怎么办?
2、三次握手,客户端向服务器的最后一个ACK 丢掉了,客户端已经正常发送数据,服务器端怎么处理
写了前三题,花了1h30+min, 编译环境不太熟悉,有的写法过不去,幸好没有卡很久,事后看着感觉花了很久,当时真是写断手,有点遗憾自己手速吧,能写但是不快
WXG四面 面委会 9.6 1h
一、题目
1、sizeof
//64位机器上如下代码,请填空 char str[] = "Hello"; char* pstr = str; const char* str_list[] = {"Hello", "World"}; void* pbuf = malloc(100); int n = 10; 请计算: sizeof (str ) = ________, sizeof ( pstr ) = _____ , sizeof ( str_list ) = _____ , sizeof ( pbuf ) = _____ , sizeof ( n ) = _________ void func ( char str[100]) { sizeof( str ) = _____ }
2、请编写一个string类,请实现:构造函数、析构函数、拷贝构造函数、operator =、c_str方法(返回const char*)
3、后台开发场景中经常会使用到“定时器(Timer)”服务:
比如使用方能启动Timer定期输出日志,或网络断连后启动Timer定期尝试重连;
现在需要自行设计一个Timer,需求/约束如下:
1)对外表现的颗粒度为秒级;
2)能处理海量定时任务;
3)单机、单线程实现;
//后续看看 关于时间轮crontab
四、项目相关
水平触发和边缘触发,适合场景,那个更难一些
WXG HR面 9.14 35min
1、问实习,实习收获
2、问最近的项目经历,项目收获
3、为啥没在本科学校读研
4、后续为啥没有实习
5、拿到那些offer
6、父母工作,是否独生
7、工作选择那哪些因素
8、确认是否是全日制研究生
9、确认身体健康情况
10、对微信部门的了解
收到了测评和云证,许愿OC~
9.17 收到OC和意向,耶耶耶
美团一面 8.13 1h
1.概括http 协议[x]
2.说一下路由器的作用
3.局域网两台主机通信的原理
4.虚拟内存
5.linux 文件目录以及作用
6.逻辑地址和物理地址 有多大
7.快排的时间按复杂度为啥是nlogn,最坏是什么情况,如何解决?
8.tcp 为啥三次握手
9.c/c++ 与python 的差别
10.软连接和硬链接
项目:
1、单条指令分发1000w 个设备的问题
2、单点负载:考虑IO和CPU
算法:
计算多叉树的权重和,每个节点的权重和为(节点的值乘以树高),不能用递归
美团二面 8.18 1h30min
1、乐观锁和悲观锁
2、redis 为啥快
3、数据库的事务的四个特点
4、数据库的隔离级别
5、tcp 四次挥手的客户端以及服务器的状态, 为啥close_wait 在 last_ack后
6、了解无锁链表吗?
7、数字压缩技术听说过吗
8、其他无锁的并发技术
9、阻塞和同步的概念
10、epoll 的原理
11、水平触发和边缘触发
12、还知道那些服务器模型
算法:
n x m的数组,每一行从大到小有序,行之间无关,求前k大的数(k
可以用stl 的库,自己实现有加分
其他:
1、自己想做啥方向
2、有哪些offer了
反问,工作选择,建议,深耕技术考虑底层,如存储、计算这些方向。公司选择,只要数据具有一定规模,公司差别不大,还要考虑各个公司的技术特点如电商,资讯这些。
后续会有同事联系
美团 三面 HR 面 8.27 15min
1、城市选择
2、项目中比较有挑战的
3、如何优化已有的项目
4、反问新人培养是一对一的吗?答类似于是多对多的
说是1周-2周出结果
两天后收到意向~
阿里 直通 9.1 1h
1、项目
2、锁
3、后续忘了
4、写题目是,链表去重,输出无重复的链表和重复的链表
阿里 9.14 4min+
对阿里部门的了解
已有那些offer
具体部门的选择
base地的选择