大厂C++面经
文章目录
大厂C++面经
前言
一、字节跳动一面(90min):
二、华为一面(60min):
三、华为二面(80min):
四、上海立芯(120min):
前言
本科双非,已拿20k的offer,特来分享一波面经
一、字节跳动一面(90min):
1、自我介绍 2、项目介绍:
因为我的项目是基于人脸识别的,所以面试官问了具体的人脸算法,我大致讲了一下算法思路和算法流程
有没有做过并发测试?(没。。)
项目中遇到哪些问题,如何去解决的?
人脸检测的时间复杂度是多少?
然后面试官和我探讨了一下算法优化问题,闲聊了不少人脸的东西(面试官知识面是真的碾压我这个菜鸡。。)
最后面试官评价说:你这个项目有点意思(有点小开心)
3、八股文:
和我说一下进程和线程的区别吧?
你说进程拥有资源,那你能说一下具体有哪些资源吗?
你提到了PCB,那和具体我说一下PCB的内部组成和实现吧(懵了一下,硬着头皮说了个七七八八)
你还提了一个进程有多个线程,那问题来了,你有没有做过多线程并发?(只知道理论,没怎么实际操作过)
如何去解决多线程安全问题?(回答:用加锁机制、互斥信号量等)
如果用信号量的话,该如何去实现?(回答:PV操作)
那PV操作为什么可以实现互斥呢?(回答:因为他们是原子操作)
那能具体说一下如何实现原子操作吗?(然后我就把PV的具体实现代码说了一下,主要是有个阻塞队列和唤醒操作)
说一下http协议吧
http包的构成是什么样子的?
你提到的发送报文和回复报文的具体有哪些组成或者字段呢?
说一下你知道的常见的http的状态码(说了200、301、302、304、404)
4、算法: 给一个m*n的二维整型数组,各行之间可能有重复出现的数字,要求输出所有在每 一行都出现的数(可能有多个):
我的想法是先每一行排序,然后用m个指针去找重复的数 面试官说思路没问题,然后让我手撕代码,我没撕出来。。不知道怎么去同时处理m个指针,最后结束时面试官和我说了一下我才反应过来,我太菜了。。
5、反问:
我哪里需要提升?(让我多敲代码。。我哭了)
我的项目讲解的怎么样?(没什么大毛病)
二、华为一面(60min):
1、自我介绍 2、项目:
你在项目中的角色?(负责人)
如何协调各个成员的工作分配?
项目有没有遇到什么问题,怎么解决的?
我看你做了不少项目,你哪来的项目资源?(我说我大二时开始在老师工作室打工。。)
项目并发量有没有测过?
3、八股文:
说一下你对linux的理解
说一下多线程
死锁的原理是怎样的
死锁的必要条件
说一下你了解的数据结构
常见的排序算法你说一下吧
快排什么时候用比较好?(说了一下快排的最好情况和最快情况,说了一下递归划分子问题,然后准备说一下快排的优化问题,被打断了。。)
4、算法 (算法我真的有点委屈,和我联系的hr说最多机考前两题的难度,问我行不行,我拍着胸脯说没问题,结果一面的面试官看了一下我的简历,突然来一句:你搞过竞赛对吧?那我们来一道难点的吧?。。我瞬间懵逼了。。)