CSIG C++一面 + 二面 凉经

3.20 CSIG 面八股(40min)
C++方面:
new malloc区别
讲讲多态
构造函数可以是虚函数吗
vector跟list的区别 优缺点
vector如何扩容 为何不用2倍
哈希冲突解决办法
智能指针用过吗,讲一讲。
(讲到循环引用那里卡住了,没实现过)

操作系统方面:
进程线程区别 从调度,拥有资源和并发并行方面回答
线程间通信方式   答了信号,信号量跟锁
进程间通信方式   答了共享内存,管道,信号量,套接字
动态分区分配算法
进程调度算法
进程状态 如何转换的
死锁是什么,如何解决

计网方面:
流量控制与拥塞避免
拥塞避免四个算法
粘包拆包了解吗,怎么解决
为什么要四次挥手

然后聊了大约十分钟的项目,因为非科班而且是本科期间做的东西,有点忘记了,就提醒我后面面试要把项目捡一捡。
反问这次面试表现,说基础准备的还不错,但是实操没问出项目的什么内容,所以希望加强,看下周的代码面吧。

3.26 CSIG一面代码部分(55min)
因为上周六面试的时候面试官设备有问题,就把代码部分放到了这周。
下午两道easy (手撕快排20min + 翻转链表15min)一道hard(hard中的easy了)最长回文子串(25min)。
然后问了用的方法的空间复杂度跟时间复杂度,因为我用的DP,
不太确定答了空间跟时间都是n^2😅。
快排问了时间复杂度,
都是nlogn吗,
是稳定排序吗,
你理解的稳定是什么样的。

然后反问,说应该会有下次面试,形式根据面试官的来,有可能视频也有可能电话,时间一般不会超过一周。
祈求offer~

3.29 CSIG 二面(64min)
用的腾讯会议,一开始PC端我还没安装,电话接入说明后耽误了3分钟~
全程没有要开IDE写代码,只是问了思想,纯干聊。
首先上来聊了聊项目
研究生期间做的算法项目过程中遇到了什么困难,怎么解决的。
之前做安卓,为什么现在想转C++。
在你眼中代码可读性较强是什么样的?
下面就是各种聊,意识流形的,基本聊到什么都能展开,问的比较深。

先让说了说虚函数
然后问子类能不能修改父类的虚函数的默认参数
修改的话是在编译阶段还是运行阶段
那你说一下重载跟重写的区别吧
指针跟引用的区别
引用占内存吗
智能指针用过吗
shared_ptr是线程安全的吗(问到盲点了,然后他补充或者说引用计数是安全的吗,我猜了一个锁)
怎么用锁来实现shared_ptr的安全性的
你了解哪些锁(读写、互斥、自旋)
你刚才说到了自旋锁,自旋锁用于什么场景(搬石头砸自己的脚~)
还有其他的锁吗或者其他的实现上述线性安全(我支支吾吾说了个条件变量跟互斥配合使用)
然后问条件变量是怎么跟互斥配合使用的(又砸~)
除了锁你还知道什么是实现线程同步的吗
死锁以及死锁避免,你自己时候遇到过死锁吗
段页结合的实现方式
操作系统的内存分配有哪些情况
深浅拷贝知道哪些,编译器默认的是什么拷贝

问了快排、复杂度、稳定性
堆排序怎么实现的,一个堆是怎么调整的,堆排序复杂度,稳定吗
知道桶排序吗,那插入排序呢

算法部分问了层序遍历的思想(双向队列,接着问单向队列不可以做吗,为什么)
锯齿状遍历的思想(双栈切换,可能我一开始没有表达的清楚,面试官一直在问需要注意什么,最后我说奇偶栈在压入下一层子树时压栈顺序不同才让过)
如何判断一个链表中有环
你说的快慢指针,我快指针一次走4步,慢指针一次走1步可以吗,慢指针走3步呢(回答了本质是一个追及问题,如果有环一定会相遇,面试官比较满意然后叫过)

之后问到了STL底层的一些问题
map的实现原理
RB_Tree 跟 一般的搜索树之间的区别
如果我要在RB_Tree上进行非叶子节点的删除操作怎么做(回答了左旋右旋,他想继续问的,然后笑了笑说算了,这个太复杂咱们先不说)
哈希冲突解决办法
哈希表的扩容机制
哈希表用于什么场景

网络这一块问了TCP如何保证可靠的
网络拥塞避免和流量控制怎么做的
说一说滑动窗口的作用(我说了缓冲区用来流量控制,他问还有吗,我想了想说面向字节流的实现方式,他让过了)
然后问如果我有2000KB的数据需要发送,但是只写了1000KB的内容在窗口内该怎么解决
TCP的拆包粘包问题
四次挥手一定是四次吗,我减少一次可以吗,为什么
如果我减少了最后一次挥手,会发生什么
长短连接以及应用场景
cookie和session的区别
session一般的应用场景

说说静态绑定和动态绑定
说一下数据结构中的堆栈和操作系统中堆栈的区别
如果现在要设计一个停车场,你要怎么构建相关的模块,他们之间的线程关系。
这一块是在引导下慢慢说的,最后我说是不是什么设计模式,面试官笑了笑,说那你知道什么设计模式,我回答单例和工厂......
然后他问了观察者模式,我直接躺下了...

最后反问我问了表现的如何,他说一般不会给面试进行点评,如果有结果会后续通知。
不太知道问什么了就随便聊了聊base 上班时间 部门业务 以及实习时间
又问了刚刚场景题自己回答的对吗,他说很接近,但不完全正确。
最后问了最快什么时候能收到结果,回答明天或者后天~

许愿HR面~~~~~

+#面经##腾讯##C++工程师#
全部评论
好面筋 赞
点赞 回复 分享
发布于 2021-04-06 23:39
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-04-20 10:58

相关推荐

头像 会员标识
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
我即大橘:耐泡王
点赞 评论 收藏
分享
工作基本定了,比较满意。这深度学习真是难搞啊,论文看不懂,代码看不懂,不会改,创新点??? 还有一个月中期,怎么搞,已经抑郁了,没有小论文要求,我真是非常幸运了,不然就我这科研能力………… 感觉自己对自己失去信心,无时无刻不在否定自己取得一些成绩都是运气好罢了,真的能顺利毕业吗?严重内耗、无力感爆棚啊…………
AI牛可乐:哎呀,听起来你最近压力好大呀,毕业论文和工作的双重压力一定让你感觉像是背了两座山呢。深度学习确实挺复杂的,就像是要在一片迷雾中找到出路一样。但是,你已经很棒了,工作都定好了,这是很大的成就呢! 论文的事情,别太担心。每个人都有看不懂代码和论文的时候,这是正常的。至于创新点嘛,有时候灵感就像小猫一样,需要一点一点地哄出来的。你可以先试试把你看过的资料整理一下,说不定就能找到新的思路呢。 中期答辩前,你可以列个计划,一步一步来,把大问题分解成小问题,一点一点克服。记得,你不是一个人在战斗,你的导师、同学都是你的战友哦。 至于信心嘛,别否定自己,每个人都会有低谷的时候。你已经取得的成绩,都是你实力的体现。毕业不是问题,只要你不放弃,就一定能顺利走过去的。加油哦,我相信你可以的! 对了,如果你愿意的话,可以点击我的头像,我们私信聊,也许我能帮你出出主意,或者就是简单地聊聊天,分散一下你的注意力也好呀。🐮💪🌟
点赞 评论 收藏
分享
3 54 评论
分享
牛客网
牛客企业服务