算法题
593有效的正方形
104二叉树的最大深度
递归解决,然后问时间,空间复杂度
然后问有没有迭代实现,写了层序遍历实现
继续问有没有其他通过迭代实现的方法,写了后序遍历的迭代实现
98验证二叉搜索树
先考虑用「判断中序遍历数组是否是严格递增的」来判断,然后问时间空间复杂度
然后问觉得有没有空间复杂度是 O(1) 的算法,回答有,应该可以考虑在遍历的过程中改变节点左指针的指向,但是不会具体实现
然后问有没有空间复杂度小于 O(n) 的算法,用中序遍历的迭代实现(记录前一个访问的节点)来解题,然后问空间复杂度
业务题:实现指定字节对齐的内存分配和释放操作,函数头:void *AllignedMalloc(size_t size, int aligned)、void AlignedFree(void *data)
业务题:页面上有两个广告位,写一个方法返回ABCD四个广告中的两种(无重复),让他们最终在广告位置上出现的概率分别为:10%,20%,30%,40%
八股
介绍下C++智能指针和使用场景
C++ map 和 unordered_map的区别,什么场景下选择哪种数据结构
C++ static 关键字的作用
介绍下进程、线程、协程的区别;
要执行一批任务时,怎么确定是使用多进程还是多线程还是多协程
其他
没有问实习,没有问项目