大厂真题 / 华为

华为机考备考完全指南

华为机考通过率约 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. 先浏览三题再决定做题顺序

华为机考的难度与分值不一定对等!有时第二、三题反而比第一题简单,第一题可能是恶心的大模拟。

策略:

  1. 第一题看一眼就有思路 → 直接开做
  2. 读了 10~15 分钟还没搞懂 → 果断跳过先看后两题
  3. 千万不要被分值误导

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 天 复习应试技巧、骗分策略、输出格式注意事项

小结

  1. 华为机考 ≠ 走过场:200 分硬性分数线,通过率仅 50%
  2. IOI 赛制是优势:暴力解也能拿部分分,别放弃任何一题
  3. 先浏览三题:难度与分值不对等,选性价比最高的先做
  4. 暴力优先:华为测试数据通常”仁慈”,暴力拿 70%+ 分数很常见
  5. ACM 模式 + 行末无空格:两个最容易翻车的低级错误