【阿里】块存储面经
代码到exe过程?
动态链接和静态链接区别?
TCP三次握手?
重传?
拥塞控制?
如何实现定时器(数据结构)?
做过最难的项目(问的很深):10min
手撕代码(30-40min)
1. 单链表反转
2. 给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c,使得a + b + c = 0?找出所有满足条件且不重复的三元组。
面试官介绍团队(3min)
自我介绍(3min)
基础(15-20min)
1. 3次握手,服务端一直收到同样的SYN包应该怎么处理,一直收到乱序的SYN包应该怎么处理,服务端一直没收到第三次握手怎么处理?
2. linux下cpp代码到执行过程,在vim下写完cpp文件:wq之后会发生什么?
3. 上一问里写了一些数据怎么从内存保存到磁盘的?
4. linux下i/o读数据经历了什么?
项目(20min)
手撕代码(40-50min)
1. 删除倒数第N个节点(扣边界条件)
2. 英文题,大概意思是找数组中最大差值(右边数大于左边数)
[10,12,15,9,8,7,10,13,11]-->6
3. 给一个Int32的数,快速判断是否是2的幂次(一直引导优化,会问循环次数)
自我介绍
问了学术和成绩
基础(15min-20min):
遍历二叉树的方法
海量数据找到top k的方法,复杂度
如何判断链表有环
C++中面向对象怎么理解
重载怎么实现
动态绑定和静态绑定区别
C++中几种构造函数
拷贝构造函数什么时候会调用
C++内存管理
C++多线程编程
C++有哪几种锁
C++调试方法,上线之后如何调试
C++容器比较,vector为什么可以随机访问
vector底层数组大小分配
开放题(15-20min)
64个苹果,有一个仪器每次可以对8个苹果的重量排序,找到所有苹果中最重的4个,至少需要多少次?