面灵AI→

华为 OD C++ 上岸复盘(26 届双非无经验):机考压线到定级 D2

轮次
机考+资面+技术一面+技术二面+主管面
base
上海
结果
已上岸,定级 D2
时间
2026-10
来源
牛客网

《面试题目》

原帖按轮次记录的是考查范围与题型,除机考三道题外没有逐题原话,下面按轮次列出实际考到的内容:

机考(3 道算法题,满分 400、150 过线)

  1. 第一题:哈希表优化,减少遍历次数。
  2. 第二题:读懂题意、梳理好输入数组的处理方式即可,注意有除法时类型的使用。
  3. 第三题:动态规划,可以把客户排序后按客户数量做状态转移,也可以按离起点的距离做状态转移。

技术一面

  1. C++ 移动语义的作用是什么?
  2. 智能指针有哪三种,各自的特点和作用是什么?
  3. 多态是怎么实现的?编译期多态和运行期多态分别指什么?虚指针、虚函数、虚函数表是怎么回事?
  4. STL 常用容器有哪些?(vector、stack、priority_queue)
  5. Linux 有哪些通信机制?
  6. 算法思路特点:单调栈、滑动窗口、哈希优化分别用在什么场景?

技术二面

  1. 主要围绕实习项目聊,不再问八股(原帖未展开具体问题)。

主管面

  1. 稳定性。
  2. 考研考公。
  3. 薪资。
  4. 校招与实习情况。

《参考解析》

机考:压线过也要看清分数结构

这场机考满分 400、150 分过线,考了 180 属于低空通过。三道题的分布很有代表性:一道哈希表优化(把两重遍历换成一次遍历加哈希查找)、一道偏读题的模拟(关键在读懂题意、把输入数组的处理方式梳理清楚,涉及除法时注意整型与浮点的选择)、一道动态规划(可以把客户排序后按客户数量做状态转移,也可以按离起点的距离做状态转移,两种状态定义都能收敛)。要记住机考按通过的测试用例给分:思路不清晰时先用最直接的实现把能过的用例拿下,再考虑优化;复习以力扣经典题为主,重点是「能把题意翻译成状态与转移」的能力,而不是见过多少题。

C++ 八股:这一场的四个高频点

移动语义的核心是避免不必要的拷贝:右值引用(T&&)让我们能识别出「这个对象马上要销毁」,从而把它的资源直接搬走而不是复制;std::move 本身不移动,只是把左值转换成右值引用;移动构造与移动赋值要记得把源对象置为有效但可析构的状态,并尽量标 noexcept,否则 vector 扩容时会退回拷贝。智能指针三种各有分工:unique_ptr 独占所有权、不可拷贝可移动、零额外开销,默认首选;shared_ptr 靠控制块的引用计数共享所有权,计数增减是原子的,但被管理对象本身的读写不是线程安全的;weak_ptr 不增加计数,用来观察或打断循环引用,使用前要 lock() 判空。多态要分编译期(重载、模板)与运行期(虚函数):运行期靠对象的虚指针指向类的虚函数表完成派发,因此通过基类指针删除派生对象时,基类析构必须是虚的,否则派生类的资源不会释放。STL 容器要能说出底层与复杂度:vector 连续内存、随机访问 O(1)、尾部插入均摊 O(1),扩容会重新分配并搬移;stack 默认基于 deque,是容器适配器,只暴露 push、pop、top;priority_queue 底层是堆(默认大顶堆),push 与 pop 是 O(log n),适合取 Top-K、任务调度与合并有序序列。

Linux 通信机制:按是否跨主机、谁来同步来排

同一台机器上的进程通信有管道(匿名管道用于亲缘进程、命名管道可跨无关进程,字节流、自带同步阻塞)、消息队列(有边界、可按类型取,内核管理,适合解耦但吞吐一般)、共享内存(最快,因为不做复制,但要自己配信号量或互斥锁做同步,这是最常被追问的组合)、信号量(做同步而非传数据)、信号(异步通知,不适合传数据)。跨主机就落到 socket。答题时按「有没有内核拷贝、能不能跨主机、同步谁来管」三个维度排序;被追问「哪种最快」答共享内存加信号量,并补充它的风险——进程崩溃后共享段可能残留,需要显式清理。

二面只看项目、主管面只看稳定:这两轮的答法

技术二面完全不问八股、围绕实习项目聊,说明面试官在验证「你真的做过什么」。准备时给每个项目备三层材料:业务背景与你的角色、技术方案与关键取舍、结果与量化(延迟、吞吐、故障率、节约的人力)。如果确实没有实习,就把课程设计、竞赛、开源贡献按同样结构整理,面试官在意的是解决问题的过程,而不是履历上的名头。主管面问稳定性、考研考公、薪资、校招实习情况,本质是确认「你会不会来、能待多久、要多少钱」:考研考公这类问题要给明确态度而不是「两条腿走路」;薪资给一个有依据的区间(参考同城同岗水平与自身面试表现),并把接受什么、不接受什么提前想清楚,避免临场被压价。

双非无经验走 OD 的可行路径

从这份复盘能看出 OD 流程并不神秘:机考考算法,资面看稳定性,技术一面看八股广度,技术二面看项目深度,主管面回到稳定性与薪资,每一关都有明确的准备重点。对无工作经验、学校背景不占优的人来说,把七成力气放在机考上最划算——机考是唯一能靠短期刷题显著改变结果的环节;八股按上面那几块准备成能讲两分钟的短答;项目部分用竞赛或课程项目顶上;人事线那几问(稳定性、离职原因、期望城市、能否长期做)提前写好答案,整个流程的通过率会明显不同。定级与薪资由岗位所在城市、面试评价和机考分数共同决定,这份复盘的结论是定级 D2、base 上海。