字节跳动客户端一二三面面经(已收到意向书)
字节跳动的面试体验真的很舒服,没有死板的问题,都是尽量构建场景,引导思考,注重过程中个人的想法和思路。而且一面二面都是当场出结果,效率非常高。第一场面试距现在也有快俩星期了,所以只能大概去回忆一下当时的问题。
一面
一面的面试官真的非常客气也很亲和,面试过程总的来说很舒适。
- 自我介绍+项目
- 设计模式接触过吗?
- 写一个懒汉式单例模式(线程安全)
- 用C++局部静态变量实现的,问知道为啥这样可行吗
- 用锁的形式去写(双检索)
- 锁都有哪几种
- 互斥锁、读写锁、自旋锁都有什么区别
- 用互斥锁能实现读写锁吗,需要几个,讲一下思路
- 代码编译有哪几个阶段,编译阶段能再细说一点在做什么吗?
- 词法检查、语法检查、语义检查,还能再讲的细一点吗?(不能了。。。)
- 两个人视频聊天,突然卡了,怎么知道是对方网络还是本地网络的问题
- 电脑应用使用正常,但是浏览器无法打开网页,怎么定位问题
- HTTP的一些错误码
- 线程通信方式
- TCP三次握手、四次挥手
- TCP流量控制和拥塞控制
- 满二叉树的判断方法,递归+层序,说思路就行
- 完全二叉树,写一个判断是不是完全二叉树的函数
- 开始用了两层while循环,面试官说复杂了,一层while循环试试,写了两种方法实现
二面
二面的面试官也非常nice,很注意对思路的引导
先给了一个类,里面有一个string的私有成员
- 补充一下里面的构造函数和拷贝构造函数
- 析构函数一定要是虚函数吗
- 为什么
- delete关键字
- 依然是这个类,重载一下=运算符
- 重载一下==运算符
- 感觉自己写的对吗,写代码测试一下
- 如果其中一个是const对象,你写的==重载还正确吗?
- 为什么?怎么保证依然可用
最后写了一个算法
一个链表,去除其中的重复项12223 变成 13这样子。
先说的思路,写的时候构造了一个辅助的头结点,面试官说不可以构造辅助的头结点。
分情况讨论,头结点是否属于重复节点,再做的。
面试官很nice,很耐心的听我的思路,提出自己的问题,然后也会帮助引导思路,教了很多逻辑思考的方法
三面
三面是最紧张的一场了
首先问了一些之前项目的经历,包括其中的一些思路和思考的方法,问我项目中一些问题怎么考虑的,有没有帮助思考的方法,以后遇到类似的项目和问题,能不能复用你的方法等。
平时都会用什么APP,说一下这些APP在使用过程中你的感受和体验,说一些认为不足需要改进的地方,或者哪些地方做的很好,认为印象深刻的。
三面的面试官很多时间都在闲聊,问一些项目中辅助思考的方法和解决问题的细节,可能更多的是想看看个人遇到问题的时候是怎么应对的。
闲聊
最后做了一道题,三数和的问题,思路?我说的双指针去做,让我分析时间复杂度,可以接受,开始写代码
代码写完之后,问我我的写***不会有重复解,例如1 2 2 3 3,要求得到6,我的写***有几组解
如果想保留重复解,我的代码怎么改?
闲聊+反问
然后就是漫长的等待环节,等了一周多如愿收到了字节的意向书,感恩牛客网各位小伙伴分享的面经,所以决定写下自己的面经,希望对大家有所帮助,也祝大家心想事成。
如果发的面经造成了不好的影响的话,请麻烦联系我,我会尽快修改或者删除
#面经##字节跳动##校招##C++工程师#