前言
记录在找工作过程中遇到的面试题,主要包括基本编程题目,以及组合导航,多传感器融合方面的专业问题等,记录下来的只是一部分,其他的没有及时记录下来。
一、J公司
1.卡尔曼滤波器的5个公式
2.智能指针:shared_ptr auto_ptr,unique_ptr的区别?
3.左值引用,右值引用
4.虚函数
5.纯虚函数的定义 构造函数后面=0
6.Git 紧急情况下的恢复
7.Git branch作用
8.设计模式有了解吗
9.ROS中自定义msg文件,要在cmakelists中写什么
10.构造函数是否可以放到private里面?【设计模式】
设计模式
11.对GNSS了解的程度?
12.RTK定位的原理?GNSS在RTK模式下的误差有哪些,或者说需要估计的状态变量有哪些?
二、B公司
编程题:
1.归并排序
2.非递归方式实现二叉树中序遍历
3.最长回文子序列的长度
三、D公司
1.SINS和GNSS融合中,在车辆停车场景下的处理?
2.SINS和GNSS融合中,如何处理GNSS野值问题?
3.SINS和GNSS融合中,静止状态下如何处理,关于零速修正?
4.SINS/DR融合中,考虑里程计的bias?
5.SINS/DR融合中,如何处理方位安装误差角和方位失准角的耦合性?
6.SINS/DR融合中,状态变量的维度?分别是哪些?
7.在SINS/DR中,如何设置Q,R的参数?
8.在SINS/DR中,用什么作为真值评价精度?
9.非线性优化方法做标定,是用cers等非线性优化库,还是自己写的?
10.有没有用过大数据,深度学习的方法实现多传感器融合定位?
11.在器件分立式惯导系统中,怎么处理加表和陀螺仪之间的安装误差?
编程题:
1.用vector实现一个排序算法
四、H公司
1.牛顿法和高斯牛顿的区别
2.什么造成牛顿法和高斯牛顿法的不同,解决什么问题
3.高斯牛顿和LM算法的区别
4.高斯牛顿的公式
5.函数重载,如何实现函数重载
6.虚函数
7.深拷贝和浅拷贝的区别
编程题:
1.如何判断一个链表是不是环形链表?
五、X公司
编程题:
1.用栈实现队列
class Solution
{
public:
void push(int node) {
stack1.push(node);
}
int pop() {
if (stack2.empty()) {
while (!stack1.empty()) {
stack2.push(stack1.top());
stack1.pop();
}
}
int ret = stack2.top();
stack2.pop();
return ret;
}
private:
stack<int> stack1;
stack<int> stack2;
};
六、Z公司
1.IMU的噪声如何辨识?
2.ICP的原理?
3.NDT原理?
4. ESKF和KF之间的区别?
4.如何解决GNSS的跳变?
6.SINS/DR融合的原理?