快手IOS开发实习生一面
面试了一个小时,前半个小时主要聊了聊上一个实习的项目和自己做的webserver,后半个小时C++理论基础和计网的问题,一道手撕算法题
首先面试官介绍了一下部门业务以及后续的面试流程
然后自我介绍
接着是让我介绍了一下上一个实习项目:
- 介绍一下项目背景
- 你在项目中具体做了什么
- 项目中的难点(如何解决)
- 项目的成果
回答的有点磕巴就没继续问了
webserver
主要针对webserver中多线程部分提问:
- 线程池的作用
- 三个有先后依赖顺序的task(b依赖a的输出,c依赖a和b的输出)来了,你的线程池如何解决,用c++如何实现(答的b,c先到就阻塞或者分配优先级,也不知道对不对)
- 你的线程池是怎么处理task的
C++理论
- 指针和引用的区别
- 多重继承
- 如何解决多重继承
计网
- 为什么三次握手四次挥手
- TCP和UDP的区别和应用场景
- HTTP和HTTPS的区别
- HPPTS的具体流程
- 对称加密和非对称加密
- 中间人攻击
- HTTP2.0
手撕
1.这题只说了思路
一个乱序数组,如何找到最大值最小值?
答了快排和遍历
两者时间复杂度多少?
快排O(nlogn)
遍历O(n)
如果使用遍历的方法,具体的时间复杂度多少?
O(2n)
如何将n前面的系数缩小?(有什么优化方案?)
没答上来
2.最长不重复子串
先说思路,然后手撕。
反问
部门业务
转语言的建议
#23届找工作求助阵地#