2025 华为 OD 机试真题与全流程备考攻略
一、什么是华为 OD?
华为 OD(Outsourcing Dispatch)是华为与外企德科联合招聘的精英外包模式,员工由德科签订合同并派驻华为工作。
OD 员工工作内容、管理方式与华为正式员工高度对齐,同工同酬,如:工作内容、福利(如五险一金、加班费、夜宵补贴等)基本一致;
且有机会通过绩效考核转为正式员工(需入职满 1 年、两次绩效 A 并通过可信认证考试)。
- 与传统外包的区别:
- 薪资对标:D1-D5 等级对应华为 13-17 级,月薪范围 9k-29k,年终奖 2-4 个月(绩效 A 可拿满)。
- 发展路径:参与核心项目开发,与华为员工共用技术晋升通道,转正后享股票分红(需职级≥15 级)。
二、什么是华为 OD 机试?
华为 OD 机试是华为对外包岗位选拔人才的核心环节,为在线编程考试,主要考察算法设计、数据结构、代码调试能力。是入职流程中的核心环节,直接影响后续面试资格和薪资定级;
据统计,机试通过率约 75%,非目标院校需 300+ 分(目标院校 150+ 分),未通过需等待半年冷冻期。
三、华为 OD 面试流程
- 申请与准备
- 需通过华为官网或 HR 渠道提交申请,锁定目标部门后不可更改。
- 机考邮件有效期 7 天,需在有效期内完成考试
- 笔试环节
- 题目构成:
- 3 道编程题:2 道 100 分题(逻辑分析/字符串处理)+1 道 200 分题(动态规划/图论等),总分 400 分,难度分布为简单 + 简单 + 中等/困难。
- 考试时间:150 分钟,支持本地 IDE 编码后复制提交,但需注意代码重复率(>80% 可能判作弊)。
- 题库特点:
- 根据历史记录,华为 OD 面试的考卷每季度(Q1-Q4)更换一次算法考试题目:旧题(占比 66%)+ 新题(占比 33%),抽中原题概率约 80%。
- 查重机制:代码相似度超 80% 判作弊,建议修改变量名、调整逻辑顺序。
- 评分标准:按测试用例通过比例得分,非目标院校需≥300 分,目标院校≥150 分即可;
- 题目构成:
- 性格测试
- 笔试通过后需完成性格测试(综测)。
- 考察重点:主要评估抗压能力、团队协作、价值观一致性(如'奋斗者文化'),挂科率约 10%,失败需等待 1.5 年重考。
- 失败后果:1.5 年冷冻期,需选择积极正向答案(如'愿意加班''重视团队')。
- 技术面试(2 轮):
- 手撕代码:高频题包括链表合并、二叉树遍历、滑动窗口等,需现场调试通过。
- 八股文提问:Java 基础(集合类、多线程)、Spring 框架、数据库索引优化等。
- HR 面:评估稳定性、职业规划,需解释工作断档期。
- 主管面:终面考察综合素质(沟通能力、项目经验),定薪依据(可争取 20%-30% 涨幅)。
- Offer 审批:流程约 2-4 周,薪资根据定级(D1-D5)确定。
四、华为 OD 薪资待遇及职级体系
| 等级 | 对应华为职级 | 月薪范围(中位数) | 年终奖(绩效 A/B) |
|---|---|---|---|
| D1 | 13 级 | 9k-13k | 2-4 个月 |
| D2 | 14 级 | 13k-17k | 2-4 个月 |
| D3 | 15 级 | 17k-21k | 2-4 个月 |
| D4 | 16 级 | 21k-25k | 2-4 个月 |
| D5 | 17 级 | 25k-29k | 2-4 个月 |
- 薪资结构:基本工资 + 绩效奖金(14-16 薪)+ 年终奖(最高 4 个月),公积金比例 5%-12%、免费夜宵、弹性工时、年度体检;
- 转正后薪资:与同职级正式员工一致,可享股票分红(需职级≥15 级)。
五、ABCDE 卷类型及特点
- A/B/C/D/E 卷区别:
- A 卷:2025 年 3 月 16 日,华为官方已经将华为 OD 机试(E 卷)切换为 A 卷;A 卷题目是由往年真题(E 卷/A 卷/B 卷/C 卷/D 卷)+ 全新题目组成;
- E 卷:2024-2025Q1 新题库,包含 D/A/B/C 卷旧题(占比约 66%)+ 新题(占比约 33%)。
- D 卷:已停用,部分题目并入 E 卷,含复杂场景题(如几何平均值最大子数等);
- B/C 卷:历史题库,侧重字符串处理、动态规划,部分题目复用率低;
- 其他卷型:历史题库(如 D 卷已停用),B 卷部分题目并入 E 卷。
- 题目分类:
- 100 分题:逻辑分析、字符串处理(如'幸运数字''停车场最大距离')。
- 200 分题:复杂场景题(如'处理器问题''几何平均值最大子数')。
- 高频考点:滑动窗口、动态规划、贪心算法、树结构、DFS/BFS(如'岛屿数量''LRU 缓存')。
六、题型与考点
- 高频题型
- 一星难度(100 分):字符串反转、数组去重、最大子数组和、约瑟夫环变形等。
- 二星难度(200 分):动态规划(背包问题、最长子序列)、图论(最短路径、DFS/BFS)、贪心算法(资源分配)、树遍历(中序/前序)等。
- 三星难度(综合应用):如'转盘寿司'问题(环形动态规划)、多线程资源调度、复杂字符串加密等。
- 核心知识点
- 数据结构:数组、链表、栈、队列、二叉树、哈希表、并查集。
- 算法:排序、二分查找、滑动窗口、回溯、分治、前缀和、差分数组。
- 输入输出处理:需熟悉 ACM 模式(手动处理输入输出),牛客网练习更贴近实际考试。
七、机试备考策略
- 刷题优先级:
- 真题库:每季度更新(Q1-Q4),优先刷 E 卷真题,复用旧题占比约 70%,建议优先刷近 3 年高频题。
- 按算法分类突破(如数组、字符串、树结构)。
- 资源:
- 使用 IDE 模拟考试环境。
- 刷题平台:牛客网、LeetCode、OJ 在线判题系统(支持多语言调试)。
- 输入输出模板:提前准备 Python/Java/C++ 的输入输出代码模板,避免考试时因格式错误丢分。
- 时间管理
- 前两题(100 分题)控制在 40 分钟内完成,第三题(200 分题)预留 60 分钟,优先保证通过率,再优化代码效率。
- 模拟考试环境练习,使用计时器训练答题速度。
- 防作弊与注意事项:
- 考试全程开启摄像头 + 手机监控(需扫码),屏幕录像,禁止切屏搜索,否则成绩无效。
- 避免代码查重(修改变量名、调整逻辑顺序)。
- 考试时禁用 Ctrl+S 等快捷键,避免页面弹出。
八、薪资与转正
- 薪资结构
- 基本工资 + 绩效 + 年终奖(2-4 个月),D1-D5 对应 13-17 级,月薪 10-40K。
- 目标院校/高分考生可谈判更高薪资。
- 薪资涨幅:转正后按同级定薪(D3 转 15 级),涨幅受原薪资和绩效影响。
- 转正要求
- 入职满 1 年 + 两次绩效 A+ 可信专业级认证,部门指标影响转正概率,部门名额充足时转正周期约 2 年。
九、常见问题解答
- 能否使用本地 IDE?
- 允许,但需注意代码查重,建议修改逻辑结构和变量命名。
- 挂科后能否重考?
- 笔试/技术面挂科需等待半年,性格测试挂科需 1.5 年。
- 机试挂科后能否换部门?
- 可联系原 HR 解锁简历,但需部门同意。
- 真题重复率高吗?
- 据统计,2024 年 E 卷 70% 为旧题改编,但需避免直接抄袭。
- 机试成绩查询:
- 通过率按用例得分计算(如通过 80% 得 80 分),次日系统生成报告。
- 非目标院校机会:
- 需机试 350+ 分,且项目经验突出。
- 性格测试技巧:
- 保持答案一致性,体现'奋斗者文化'价值观。
十、总结
华为 OD 机试是进入华为体系的重要通道,需系统准备算法题库、合理分配时间、注重代码规范和防作弊细节、熟悉面试流程,并结合自身职业规划合理选择岗位。建议结合在线 OJ 平台(如牛客、力扣)强化训练,同时关注题库动态更新,通过刷题、模拟考试和真题解析,可以显著提高通过率。
2025 华为 OD 机试真题 B 卷 100 分题型
2025 B 卷 100 分题
| 序号 | 题目 | 考点 | 最佳实现 |
|---|---|---|---|
| 1 | 最小循环子数组 | 字符串匹配、KMP 算法(或枚举验证) | Java/python/JavaScript/C/C++/GO |
| 2 | 字符串序列判定 | 字符串、双指针算法 | Java/python/JavaScript/C/C++/GO |
| 3 | 小明减肥 | 组合数学、回溯/枚举 | Java/python/JavaScript/C/C++/GO |
| 4 | 货币单位换算 | 字符串解析、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 5 | 判断字符串子序列 | 字符串、双指针算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 6 | 字符串加密 | 字符串处理、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 7 | 流水线 | 排序、贪心算法(最小堆) | Java/python/JavaScript/C/C++/GO |
| 8 | 报文响应时间 | 字符串、栈操作(位运算)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 9 | 人民币转换 | 字符串处理、递归/分治算法、逻辑分支 | Java/python/JavaScript/C/C++/GO |
| 10 | 数组组成的最小数字 | 字符串排序、贪心算法 | Java/python/JavaScript/C/C++/GO |
| 11 | 拼接 URL | 字符串逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 12 | 通信系统策略调度(用户调度问题) | 贪心算法 | Java/python/JavaScript/C/C++/GO |
| 13 | 斗地主之顺子 | 字符串处理、排序算法、逻辑判断 | Java/python/JavaScript/C/C++/GO |
| 14 | 计算正方形的数量 | 几何算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 15 | 数据分类 | 位运算、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 16 | 最长的顺子 | 字符串、动态规划/滑动窗口、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 17 | 求最大数字 | 字符串、栈操作(贪心算法)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 18 | 最长的指定瑕疵度的元音子串 | 字符串遍历、双指针算法、元音索引记录 | Java/python/JavaScript/C/C++/GO |
| 19 | 生成哈夫曼树 | 哈夫曼树、优先队列 | Java/python/JavaScript/C/C++/GO |
| 20 | 最大利润贪心的商人 | 贪心算法、数组遍历 | Java/python/JavaScript/C/C++/GO |
| 21 | 最小的调整次数/特异性双端队列 |
2025 华为 OD 机试真题 B 卷 200 分题型
2025 B 卷 200 分题
| 序号 | 题目 | 考点 | 最佳实现 |
|---|---|---|---|
| 1 | 仿 LISP 运算 | 字符串、栈操作(递归/逆波兰)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 2 | 矩阵中非 1 的数量 | 广度优先搜索(BFS)、矩阵遍历 | Java/python/JavaScript/C/C++/GO |
| 3 | 欢乐周末 | 广度优先搜索(BFS)、连通性分析 | Java/python/JavaScript/C/C++/GO |
| 4 | 启动多任务排序 | 拓扑排序(贪心策略)、字符串处理、逻辑分析 | Java/python/JavaScript/C/C++/GO |
| 5 | 矩阵匹配 | 二分查找、二分图匹配 | Java/python/JavaScript/C/C++/GO |
| 6 | 信道分配 | 贪心算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 7 | 人气最高的店铺 | 贪心算法、排序、逻辑分析 | Java/python/JavaScript/C/C++/GO |
| 8 | 求最大的数 | 字符串、栈操作(贪心算法)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 9 | 士兵过河 | 动态规划、排序 | Java/python/JavaScript/C/C++/GO |
| 10 | 无向图染色 | 回溯算法 | Java/python/JavaScript/C/C++/GO |
| 11 | 区间交集 | 区间合并、排序、贪心算法 | Java/python/JavaScript/C/C++/GO |
| 12 | 荒岛求生 | 栈操作(贪心算法)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 13 | 猴子吃桃/爱吃蟠桃的孙悟空 | 二分查找、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 14 | 二叉树的广度优先遍历 | 字符串处理、递归/分治算法(构建二叉树)、队列操作(BFS) | Java/python/JavaScript/C/C++/GO |
| 15 | 模拟工作队列 | 优先队列(堆)、事件模拟、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 16 | 最小矩阵宽度 | 滑动窗口、哈希表(计数覆盖) | Java/python/JavaScript/C/C++/GO |
| 17 | 书籍叠放 | 动态规划(最长递增子序列变种)、排序 | Java/python/JavaScript/C/C++/GO |
| 18 | 组装最大可靠性设备 | 二分查找、贪心算法、组合优化 | Java/python/JavaScript/C++ |
| 19 | 最大岛屿体积 | DFS、矩阵遍历、连通分量 | Java/python/JavaScript/C++ |
| 20 | 观看文艺汇演 | 贪心算法、区间调度 | Java/python/JavaScript/C++ |
| 21 | 上班之路 |
2025 华为 OD 机试真题 A 卷 100 分题型
2025 A 卷 100 分题
| 序号 | 题目 | 考点 | 最佳实现 |
|---|---|---|---|
| 1 | 出租车计费/靠谱的车 | 进制转换(9 进制映射)、字符串处理 | Java/python/JavaScript/C/C++/GO |
| 2 | 投篮大赛 | 字符串、栈操作 | Java/python/JavaScript/C/C++/GO |
| 3 | 新工号中数字的最短长度 | 对数计算/二分法 | Java/python/JavaScript/C/C++/GO |
| 4 | 分苹果 | 位运算(异或)、贪心算法 | Java/python/JavaScript/C/C++/GO |
| 5 | TLV 解码 | 字符串解析、小端序处理、逻辑遍历 | Java/python/JavaScript/C/C++/GO |
| 6 | 分糖果 | 贪心算法、数学分析 | Java/python/JavaScript/C/C++/GO |
| 7 | 单词接龙(首字母接龙) | 字符串、贪心算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 8 | 新学校选址 | 中位数、排序算法(如快速排序) | Java/python/JavaScript/C/C++/GO |
| 9 | Boss 的收入(分销网络提成计算) | 树遍历、哈希表、递归/DFS | Java/python/JavaScript/C/C++/GO |
| 10 | 告警抑制 | 字符串处理、哈希映射(逻辑处理) | Java/python/JavaScript/C/C++/GO |
| 11 | AI 面板识别 | 坐标处理、排序算法、逻辑判断 | Java/python/JavaScript/C/C++/GO |
| 12 | 求最多可以派出多少支队伍 | 贪心算法、双指针、排序 | Java/python/JavaScript/C/C++/GO |
| 13 | 硬件产品销售方案 | 回溯算法(DFS)、剪枝优化、排序预处理 | Java/python/JavaScript/C/C++/GO |
| 14 | 绘图机器 | 逻辑分析 | Java/python/JavaScript/C/C++/GO |
| 15 | 字母组合过滤组合字符串 | 字符串、回溯算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 16 | 素数之积 RSA 加密算法 | 数论、因数分解、素数判断 | Java/python/JavaScript/C/C++/GO |
| 17 | 战场索敌 | 广度优先搜索(BFS)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 18 | 阿里巴巴找黄金宝箱Ⅰ | 前缀和、逻辑模拟 | Java/python/JavaScript/C/C++/GO |
| 19 | 阿里巴巴找黄金宝箱 II | 贪心算法、哈希统计、排序 | Java/python/JavaScript/C/C++/GO |
| 20 | 阿里巴巴找黄金宝箱 III | 哈希表、滑动窗口、逻辑分析 | Java/python/JavaScript/C/C++/GO |
| 21 |
2025 华为 OD 机试真题 A 卷 200 分题型
2025 A 卷 200 分题
| 序号 | 题目 | 考点 | 最佳实现 |
|---|---|---|---|
| 1 | 虚拟理财游戏 | 贪心算法、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 2 | 水果摊小买卖 | 排序、动态规划 | Java/python/JavaScript/C/C++/GO |
| 3 | 九宫格按键输入 | 字符串处理、栈操作(状态机算法)、逻辑分支 | Java/python/JavaScript/C/C++/GO |
| 4 | 最少交付时间(项目排期) | 二分查找、回溯(分配策略) | Java/python/JavaScript/C/C++/GO |
| 5 | 洞穴探险 | 字符串处理、栈操作、逻辑判断 | Java/python/JavaScript/C/C++/GO |
| 6 | 传递悄悄话 | 二叉树、DFS/BFS、路径和计算 | Java/python/JavaScript/C/C++/GO |
| 7 | 推荐多样性 | 队列操作、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 8 | 二维伞的雨滴效应 | 递归、二叉搜索树验证、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 9 | 矩形绘制 | 字符串、集合操作、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 10 | 最佳的出牌方法 | 字符串处理、贪心算法、逻辑分析 | Java/python/JavaScript/C/C++/GO |
| 11 | 最大相连男生数学生方阵 | 矩阵遍历、动态规划/DFS | Java/python/JavaScript/C/C++/GO |
| 12 | 快递员的烦恼 | 图论、动态规划(Floyd-Warshall 算法、状态压缩 DP) | Java/python/JavaScript/C/C++/GO |
| 13 | 天然蓄水库 | 双指针 | Java/python/JavaScript/C/C++/GO |
| 14 | 二叉树中序遍历 | 字符串解析、栈操作(递归) | Java/python/JavaScript/C/C++/GO |
| 15 | 会议接待 /代表团坐车 | 动态规划(背包问题) | Java/python/JavaScript/C/C++/GO |
| 16 | 智能驾驶 | 动态规划、贪心算法 | Java/python/JavaScript/C/C++/GO |
| 17 | 数字加减游戏 | 模运算、枚举 | Java/python/JavaScript/C/C++/GO |
| 18 | 数字游戏 | 前缀和、模运算(数学规律) | Java/python/JavaScript/C/C++/GO |
| 19 | 简易内存池 | 内存管理(首次适应算法)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 20 | 阿里巴巴找黄金宝箱 IV | 字符串、栈操作(单调栈算法)、逻辑处理 | Java/python/JavaScript/C/C++/GO |
| 21 | 攀登者 2 |


