柠檬微趣凉经
unity和C++客户端都投了,只有C++岗位有笔试
笔试题
4道,具体记不太清了
1,是个归并排序合并链表
2,递推题,比较简单
3,当时没想出来的一道,一个数组,求每个位置的值,值是该位置后方元素中大于该位置元素的数中的最小值(有点绕口,具体就是2,1,5,3例如对第一个元素2求值,结果是1,5,3中大于2的最小值 3)
后面想了想,可以先对数组排序,记录排序后每个元素的原先位置,然后就是单调栈遍历就行了
4,模拟正则表达式匹配字符串
一面(60min)
虚函数表存在什么内存区域上,如果一个子类没有重写虚函数,会和基类公用一个虚函数表吗
虚指针为什么开头初始化
引用能不能实现多态
shared_ptr的引用计数实现原理
如果插入多个数据,用哈希表还是红黑树好
红黑树和avl的区别,插入多个数据,选择avl还是红黑树?
哈希表什么时候扩容
什么时候调用移动构造函数
还有一些简单的就不列了,其中还让手写实现了一下拷贝赋值运算符和移动赋值运算符,类中含有int * 数组的不同处理
最后一道反转链表
二面(40min)
上来介绍项目和难点(这里脑子不知道怎么抽了,突然忘了怎么实现某个功能了,结果别的方面也没说好。。。)
工厂模式介绍
然后就是一道场景题
一个二维平面n*n,往里面放入不同大小的长方形块,有长宽,方块可以旋转,问能否放下,并给出各个方块的摆放位置。
(没想出来,还让我手写一下,连函数模板和结构体也不给,想了半天说了不会,面试官说那给固定大小平面,固定数量方块,不可以旋转能不能实现,还是不会,我觉得这条件减的没什么区别吧,可能我还是太菜了,最后换了道题)
换了道还是场景题
二维平面n*n,一个火焰装置可以向四个方向喷射火焰,火焰结尾处如果碰到别的装置,那别的装置也会喷射火焰,
给一堆装置,判断是否存在火焰绕成环的情况。
依然没给函数模板和结构体,都得自己设,类似于判断存不存在环,这里写的就简单用个u_map存一下看看有没有重复来实现。
二面答的不好,可能忘吃早饭了,项目突然忘了怎么实现的了。。。后面场景题也没答出来,下午被挂了。
所以早饭还是得按时吃才行。。
#面经##柠檬微趣面经#