大厂真题 / 华为
华为机考备考完全指南
华为机考通过率约 50%,难的场次仅 10%~30%。暑期实习机考成绩可沿用至秋招(取最高分),相当于多一次机会。
一、请重视华为机考
很多同学以为大厂机考不会”挂人”(比如美团笔试不直接淘汰),但华为有硬性 200 分分数线,不到线无论简历多好都无法进面。
关键事实:
- 通过率约 50%,难的场次仅 10%~30%
- 有 200 分硬性分数线,不过线直接淘汰
- 题目风格与 LeetCode Hot100 差距大,没有针对性准备容易翻车
- 暑期实习机考成绩可用于秋招(取两次最高分),暑期实习和秋招之间无冷冻期
二、考试内容与形式
岗位分类
| 岗位类型 | 机考方向 | 示例岗位 |
|---|---|---|
| AI 前缀岗位 | AI 机考 | AI应用工程师、AI开发工程师、AI算法工程师 |
| 非 AI 岗位 | 传统机考 | 通软工程师、嵌软工程师、测试工程师、算法工程师(无AI前缀) |
机考方向只和岗位名称有关,与报名的大部门和学历无关。
传统机考
- 题目数量:3 道算法编程题
- 考试时长:2 小时
- 考察形式:ACM 模式(自行处理输入输出)+ IOI 赛制(按测试点通过率计分,可无限提交)
- 风格特点:侧重业务场景,”模拟 + 弯弯绕 + 堆需求”,需要认真读题
- 常见考点:DFS、BFS、排序、二分、双指针、模拟、动态规划、图论(高频!)
三、得分机制详解
分值分布
| 题目 | 分值 | 说明 |
|---|---|---|
| 第一题 | 150 分 | 开场即可看到全部三题 |
| 第二题 | 150 分 | 不需要一题一题做 |
| 第三题 | 300 分 | 通常最难 |
| 通过线 | 200 分 |
IOI 赛制计分
\[\text{本题得分} = \frac{\text{通过的测试点数}}{n} \times \text{本题满分}\]示例:第三题提交后系统反馈通过率 30%,得分 = 30% × 300 = 90 分。此时前两题只需再拿 110 分即可过线。
重要规则
- 提交次数无限,不扣分
- 多次提交取最高分,不是取最后一次
- 分数只和通过率有关,与代码规范、变量命名无关
- 提交后如果不是满分,会给出错误原因 + 通过率,以通过率为准
四、备考策略
整体流程
算法打基础 → 真题练习 → 应试技巧
算法基础(高频考点)
| 考点 | 优先级 | 说明 |
|---|---|---|
| DFS / BFS | 极高 | 华为非常爱考图论 |
| 排序 + 二分 | 高 | 基础必备 |
| 动态规划 | 高 | 中等难度题常考 |
| 模拟 | 高 | 华为特色,读题能力 |
| 双指针 / 滑动窗口 | 中 | 经典套路 |
| 贪心 | 中 | 骗分利器 |
| 状态压缩 DP | 中低 | 第三题偶尔出现 |
真题练习
- 华为题目每次都是新题,不考原题
- 但考察风格、知识点与以往相似
- 注意:华为 OD 题库与校招/实习题目完全不同,不要买错
五、应试技巧(考前必看)
1. 务必学会 ACM 模式
华为机考是 ACM 模式,需要自己处理输入输出。刷惯了 LeetCode 核心代码模式的同学务必提前练习。
2. 先当分奴
第一目标永远是先到 200 分。到不了 200 进不了面试,代码写得再漂亮也没用。
3. 先浏览三题再决定做题顺序
华为机考的难度与分值不一定对等!有时第二、三题反而比第一题简单,第一题可能是恶心的大模拟。
策略:
- 第一题看一眼就有思路 → 直接开做
- 读了 10~15 分钟还没搞懂 → 果断跳过先看后两题
- 千万不要被分值误导
4. 暴力骗分法
遇到不会满分做法的题,不要纠结时间复杂度,直接写暴力解拿部分分。
为什么暴力能得分?
华为真实机考的后台数据通常比较”仁慈”。题面标 $n = 10^5$,但可能 50% 以上的测试点 $n \leq 100$。真实案例:
| 场次 | 正解 | 暴力 | 暴力得分 |
|---|---|---|---|
| 22秋招-幼儿园报数($n=10^5$) | 树状数组求逆序对 | $O(n^2)$ 双重循环 | 90%+ |
| 24秋招-亲和调度($n=30$) | 最大团 / 子集DP | 暴力DFS子集 | 70%+ |
| 25实习-最小测试用例集($n=1000$) | $2^n$ 枚举子集 | 贪心(每次选覆盖最多的) | 100% |
注意:面试官会拿到你的代码做复盘。骗分时尽量把逻辑写出来(哪怕没起作用),不要只有孤零零一行输出。面试时可以说”考场上有思路但时间不够”。
5. 输出格式严格一致
华为 iLearning 平台不会忽略行末空格。输出 "1 2 3 4 5 " 会判错,必须是 "1 2 3 4 5"。
Python 常见坑:
# 错误:末尾多空格
print(' '.join(str(x) for x in arr), end=' ')
# 正确
print(' '.join(str(x) for x in arr))
六、常见问题大全
考试机会与时间
| 问题 | 回答 |
|---|---|
| 暑期实习机考几次机会? | 只有 1 次,挂了等秋招 |
| 秋招能重考吗? | 可能:①该场通过率过低全体重考;②简历优秀(通常双C9)可找HR申请二次机考 |
| 能推迟吗? | 通常有 1~2 次推迟机会,与对接人沟通。无对接人则不点邮件中的”确认参加” |
| 暑期实习和秋招有冷冻期吗? | 没有(冷冻期是OD规则,不适用于校招正编) |
| 考试邮件什么时候发? | 周二白天逐步发放,一直到晚上 |
考试环境
| 问题 | 回答 |
|---|---|
| 考试用软件还是网页? | 华为自研平台 iLearning 客户端 |
| 有双机位吗? | 有,笔记本摄像头 + 手机摄像头 |
| 可以用本地 IDE 吗? | 可以,限官方白名单 IDE(客户端中有细则) |
| 能用 IDE 自带补全吗? | 可以,但不能用联网/AI 补全 |
| 能截图吗? | 不行,属于违规 |
| 能外接显示屏吗? | 不行,会被检测到 |
| 能用纸和笔吗? | 可以,保证头肩在摄像头内即可 |
成绩与判定
| 问题 | 回答 |
|---|---|
| 怎么知道自己过没过? | ①考试中自行计算通过分数 ≥ 200 即过;②考后 1 天让 HR 帮查 |
| 官网显示”已通过”代表机考过了? | 不代表,唯一标准是分数 ≥ 200 |
| 考完发测评代表机考过了? | 不代表,测评与机考无因果关系 |
| 考原题吗? | 不考,每次都是新题(但知识点和风格相似) |
| 有代码查重吗? | 有。重复率 >90% 直接拉黑;80%~90% 需面试时澄清 |
语言相关
| 问题 | 回答 |
|---|---|
| C++ 能用万能头文件吗? | 可以 #include<bits/stdc++.h> |
| C++ 最高支持什么标准? | 可选 “C++”(C++98) 和 “C++14”,建议选 C++14 |
| Python 能用 numpy 吗? | 仅 ML/DL 题提供 numpy;传统编程题不提供。可先 import numpy 测试 |
七、备考时间线建议
| 阶段 | 时间 | 内容 |
|---|---|---|
| 基础 | 1~2 周 | ACM 模式熟悉 + 高频考点过一遍(DFS/BFS/DP/二分/模拟) |
| 真题 | 1~2 周 | 刷华为校招真题,熟悉出题风格 |
| 冲刺 | 考前 2~3 天 | 复习应试技巧、骗分策略、输出格式注意事项 |
小结
- 华为机考 ≠ 走过场:200 分硬性分数线,通过率仅 50%
- IOI 赛制是优势:暴力解也能拿部分分,别放弃任何一题
- 先浏览三题:难度与分值不对等,选性价比最高的先做
- 暴力优先:华为测试数据通常”仁慈”,暴力拿 70%+ 分数很常见
- ACM 模式 + 行末无空格:两个最容易翻车的低级错误