地平线校招 C++ 考试题到底怎么考?它不是互联网算法岗,是 AI、C++、系统软件一起筛
NMS、IOU、GEMM、RTOS、Autosar,这些东西如果出现在同一套面试里,你就不该再把它理解成普通互联网 C++ 岗。
地平线最典型的地方,恰恰不在普通算法题本身。
而是它会把三种东西一起塞进筛选链里:
- AI 算法理解
- C++ 工程实现
- 芯片和系统软件约束
这三件事拆开看,你可能都见过。
真正难的是,它要求你把它们放在同一个场景里回答。
所以这篇我不写成泛泛的“自动驾驶校招攻略”。
只回答一个更具体的问题:
如果你目标是地平线,和 C++ 最相关的考试题,到底主要在考什么?
校招大礼包获取:入口
可能是至今最全,最好,最实用的校招大礼包,减少信息差,帮你提升80%概率拿到offer
先把公司类型看准
很多人看到 C++、算法、后端、系统这些词,就会自动套用互联网大厂那套准备逻辑。
放到地平线,这通常不够。
地平线更像什么?
更像一家高门槛的交叉型技术公司。
它典型的 C++ 相关岗位有三类:
- 算法工程师
- 工具链工程师
- 系统软件工程师
这三类岗位表面都在用 C++。
但各自背后的问题体系完全不一样。
算法工程师会被问:
- NMS
- IOU
- BEV
- 模型量化
工具链工程师会被问:
- 编译器
- 算子融合
- ONNX
- 量化和部署链路
系统软件工程师会被问:
- RTOS
- Autosar
- 中断
- 实时调度
所以如果你想用一套“通用 C++ 八股 + LeetCode”把地平线打穿,通常不现实。
地平线的 C++ 考试,最典型的不是题库,而是“场景”
很多公司会先给你一个很明确的筛选标签。
比如某些公司,最有辨识度的是链表题。
某些公司,最有辨识度的是缓存设计。
地平线不太一样。
它最有辨识度的,是场景。
你会发现很多题最后都会落回一句话:
这段代码最终要跑在资源受限、强调实时性和部署效率的设备上。
这就决定了它的考法和普通互联网题有明显差别。
1. 算法题不会只停在“能不能 AC”
你会写出来,不代表够了。
后面常常会继续问:
- 这段实现有没有优化空间?
- 内存占用会不会太大?
- 如果放到车端设备上,瓶颈在哪?
2. C++ 不只是语言能力,而是工程能力
地平线不会满足于你“语法没问题”。
它更在意:
- 你写得够不够稳
- 性能意识够不够强
- 有没有资源约束意识
3. 系统软件题不是装饰品
在很多互联网公司,系统题有时更像背景板。
在地平线,系统软件和芯片相关内容是真主线之一。
所以地平线的 C++ 考试,更像是一道交叉题。
不是单一学科比赛。
地平线 C++ 方向最常见的 4 类题
第一类:基础数据结构和手写题
先别以为地平线只考 AI 专项。
它照样会考基础题。
而且这些题同样重要:
- 反转链表
- 层序遍历
- 快速排序
LRU- 合并 K 个有序链表
- 第 K 大元素
为什么这些基础题仍然重要?
因为它们是进入后面工程讨论的门槛。
你基础题都写不顺,后面的 AI 和系统讨论基本也不会太展开。
但和普通公司不一样的是,地平线通常不会把这些题作为全部重点。
它们更像第一层筛选。
第二类:AI 专项手写题
这才是地平线最有辨识度的一类。
代表性非常强:
- NMS
- IOU
- Softmax 数值稳定实现
- GEMM 矩阵乘法
为什么这类题重要?
因为它们非常贴近真实工作。
你如果只会 LeetCode,碰到这些题就会明显不适应。
NMS
这几乎可以看作地平线算法岗的标志题之一。
它不是考你会不会背定义。
而是看你能不能把目标检测后处理真正写出来。
IOU
公式不长。
但特别容易在边界条件上出错。
这类题很适合看一个人是不是只懂概念,不懂落地实现。
Softmax
这道题最有价值的地方,不是数学。
而是它能直接测出你有没有数值稳定性的意识。
这就已经比普通“会不会做题”更接近工程能力了。
GEMM
表面是矩阵乘法。
继续往下追,就会到:
- 内存访问模式
- Cache 友好性
- SIMD 加速
这非常符合地平线的整体风格。
一道题,从算法一下子延伸到性能优化和芯片友好实现。
第三类:C++ 性能和并发题
这部分是很多人最容易准备不够的一块。
因为大家会默认:
AI 公司可能更看模型。
但在地平线,模型和 C++ 工程实现是绑在一起的。
高频点很稳定:
- RAII
- 智能指针
- 多线程
std::atomic- 无锁队列
- 内存对齐
- SIMD
- Cache 友好代码
这类题在地平线的意义很大。
因为你写的代码,不是跑在资源宽松的服务端。
它最终要面对的是:
- 车端部署
- 推理效率
- 内存限制
- 实时性约束
所以地平线 C++ 方向最怕哪类人?
最怕那种只会写“能跑”的代码,但没有性能和资源约束意识的人。
第四类:系统软件和芯片约束题
这一类题,才是地平线和普通互联网 C++ 岗差异最大的地方。
高频主题包括:
- RTOS
- Autosar
- 优先级反转
- 中断
- DMA
- 芯片和系统协同
这部分说明一件事:
地平线不是单纯 AI 算法公司。
它还在筛能把模型真正放进芯片和系统里跑起来的人。
所以如果你目标是系统软件或工具链方向,这块根本不是附加项。
它就是主战场。
地平线和互联网大厂的 C++ 考法,差别到底在哪
如果放在一起比较,会更清楚。
腾讯更像“底层基础筛选”
缓存、对象模型、OS、网络,一路往下追。
字节更像“高压算法筛选”
先看你能不能把题很快写出来,再看规模和业务延展。
地平线更像“交叉能力筛选”
它的问题经常不是单线的。
而是把这些东西混在一起:
- 你懂不懂模型
- 你能不能用 C++ 真写出来
- 你有没有性能和部署意识
- 你知不知道芯片和系统约束意味着什么
所以一句更直接的话是:
地平线不是“会做算法题的 C++ 岗”,而是“AI、C++、系统软件一起筛”的岗位。
准备地平线 C++ 考试,最容易错的 3 件事
误区 1:只刷 LeetCode,不补 AI 专项手写题
这是最常见的翻车点。
你基础题当然要会。
但如果 NMS、IOU、Softmax、GEMM 这类题完全没准备,地平线的辨识度部分你就丢了。
误区 2:只会 Python,不会用 C++ 落地
这一点在地平线特别敏感。
因为很多岗位虽然有算法背景,但工程实现必须落到 C++。
你如果只能讲模型原理,写不出 C++,会非常被动。
误区 3:只懂模型,不懂部署和资源约束
这也是很多人会忽视的一点。
模型指标高,不代表你适合地平线。
地平线更关心的是:
- 这个模型怎么部署
- 怎么量化
- 怎么跑得更快
- 在资源受限设备上怎么取舍
没有这层意识,回答会显得很“学院派”。
如果只剩两周,地平线 C++ 应该怎么补
更高效的顺序是:
第一阶段:把基础题组打稳
- 反转链表
- 层序遍历
- 快排
LRU- 第 K 大元素
这是入场券。
第二阶段:补 AI 专项手写题
NMSIOUSoftmaxGEMM
这部分是地平线最有辨识度的东西,不能跳。
第三阶段:补 C++ 工程和系统软件
- 智能指针
- RAII
- 多线程
std::atomic- SIMD
- RTOS
- Autosar
这样准备,才更像真的在准备地平线,而不是准备一家互联网公司的 C++ 岗。
地平线真正的门槛
地平线校招里的 C++ 考试题,不适合理解成“多刷点算法题,再补一点八股”。
它真正更像在筛一种人:
既懂 AI 算法,又能用 C++ 写出工程实现,还知道代码最终要放进真实系统和芯片约束里跑的人。
所以这条线最值得记住的判断是:
地平线不是普通 C++ 岗,而是高门槛的 AI / C++ / 系统交叉型方向。
这句话想明白了,准备路径就不会偏得太远。

浙公网安备 33010602011771号