3.20阿里暑期实习一面
📍面试公司:阿里爱橙科技
👜面试岗位:暑期实习
📖面试问题:
- 自我介绍
- 八股挑个熟悉的,虚拟内存和物理内存?
- 为什么要有虚拟内存?答了进程间互不干扰;进程更大运行空间;进程内地址分布(堆、栈等);没有答到点子上,共享相同内核态内存
- STL挑一个介绍?vector
- vector动态扩容如何实现的?
- 拷贝到新的空间花费较高,设计新的数据结构,保证随机访问O(1)复杂度的同时,避免拷贝?答了deque的设计思路,多个连续内存的固定大小块,中心表用map存块首地址。
- 在这个结构的基础上,如何实现O(1)的随机删除?答了在块内部删除元素、元素左移,此时也需维护每个块的大小。
- 如果采用标志删除法,该如何做?中心表需要保存每个块删除的元素的下标(比如查找元素22,第一个块内删除了下标2、3,那么实际在第二个块内对应元素下标为22+2=24,若24也被删除,往后找到第一个未被删除的)
- 2个球,100层楼,x楼往上开始扔,鸡蛋会碎,x楼往下鸡蛋不会碎,最快找到x?答了二分和以10楼层分块,没有答出最优解法
- 手撕:string类型的两个非负整数求和,结果也为string,需要注意string很长。注意保存进位,在引导下debug了多次呜呜。
🙌面试体验:
- 诚意满满,先介绍部门,整体上也不问为难的八股,比较注重设计思想和理解程度。总体下来一个半小时,面试官非常认真。