还愿:已oc
四轮技术面~~
第四轮太拉跨,估计凉了,发个面经攒攒人品😥
一面
聊项目;
struct定义char、double内存布局(内存对齐问题);
内存布局;堆区、栈区的区别;数据结构中堆、栈的区别;
建堆的过程和时间复杂度;
以下两种返回的区别:
(1)String s=a+b; return s;
(2)return a+b;
析构函数需要是虚函数吗?为什么?
- 函数调用用参数是怎么传递的?
- 函数调用的参数什么顺序压栈的?
- 为什么函数调用的参数要从右往左压栈?
手撕代码:实现计算器
二面
对C++封装、继承、多态的理解;
常见的排序算法以及他们的时间复杂度;
C++ static的作用;
C++智能指针;
C++类型转换;
左值引用和右值引用的区别;
Gdb调试;
多线程编程
内核介绍(不是很清楚介绍啥),面试官指导下介绍了进程、线程同步方式;
构造函数的种类;
手撕代码:
- 合并k个有序链表;
- 反转给定区间的链表;
三面
机器视觉
给定一些滤波算子,判断是哪一类滤波?
介绍SIFT?
机器学习
- 给定矩阵方程,求极值对应下的向量值?矩阵求导、求梯度?(让直接写推导过程)
C++
内存堆和栈的区别?那个更大,那个更快?(堆更大、栈更快)
C++内存布局?整个内存空间的内存分布?
文字常量区为啥要和代码区放在一起?为什么不可以和全局区交换位置?
给定一个函数调用,在主函数中设置变量,并调用函数,问此时栈中从高地址位到低地址位的数据分别是什么?
为什么函数调用要从右向左压栈?
类默认会生成那些函数?
new创建一个类和malloc创建一个类的区别?
float数据的组成,C++是如何对他进行存储的?float32 a = 10^20 + 10^-20的输出是啥?
代码(说思路就好)
求x的开方?(牛顿迭代法)
求滑动窗口的最大值?(力扣239:单调队列)
求滑动窗口的中位数?(力扣480)
四面
四面主要就是面试官根据你的简历问你简历上的东西(比如学过的课程、实验室研究内容等等),然后会问一些场景题(好多课程都是学了就还给老师了😥)。最后让实现一个非极大值抑制,以前没了解过,然后还理解错面试官的意思了,写了好久好久好久都没写出来~凉凉
不过商汤流程是真的快~
(以上内容凭记忆搜索而得,并不完整)
**
全部评论
(5) 回帖