专栏导读
本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。
刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天优快云在线答疑。
2025年5月12日,华为官方已经将华为OD机试(A卷)切换为 B 卷。
目前正在考的是B卷,按照华为OD往常的操作,B卷题目是由往年真题(A卷/B卷/C卷/D卷/E卷)+全新题目组成,也就是说2025B卷还会考到A卷、B卷、C卷、D卷、E卷的题目,比例大概是1道新题、2道旧题的样子。
2025年5月12日之后,很多小伙伴收到的是B卷,那么恭喜你看到本文了,抓紧刷题吧。B卷新题库正在更新中。
不管是OD机试还是已经入职,刷题都很重要!!!
- 只有通过机试才能进入技术面
- 技术一面二面也需要现场编写代码、手撕算法题
- 入职后,一年内必须通过可信考试,也是算法题考试,可信考试有三个级别(入门级、工作级、专业级),不同级别会对应不同薪资
推荐刷题方法:
- 优先刷2025B卷真题(目前在考的就是2025B卷,包含1道B卷新题、2道A卷/B卷/C卷/D卷/E卷旧题)
- 按算法分类刷题,逐个击破,效率更高
- 刷题方式:
- 模拟考试环境,只看题目,不看解题思路和代码实例,通过IDE解题
- 100分题目,闭卷40分钟
- 200分题目,闭卷60分钟
- 解答完,再看文章解题思路和代码
- 刷题在于精,不在多
- 在于理解,切记背代码。
刷题过程中,遇到算法问题,推荐使用ChatGPT解决。
考试注意事项:
1、 在线训练和正式考试,请在本地 IDE 上进行编写,然后再粘贴复制到笔试页面,保存并调试。
2、考试时不用紧张,保持正常编码习惯即可,遇到无法提示又无把握的实现时,改用其他方式代替。
3、训练和考试的代码均需要编写输入和输出代码,编码一段代码后记得进行调试,保证代码正确性。
4、 编码工具删除行 ctrl+d依旧可以使用,ctrl+c,+v ,+z 等均可正常使用,其他快捷键建议尽量莫用,尤其是有保存习惯的同学,不要用ctrl+s,否则会打开页面保存键,算弹出当前页面一次。
5、 请安装使用最新版 chrome浏览器作答,考试需开启摄像头,请确保电脑带有摄像头,考试中途请不要查看其它网站。
6、答题前请注意查看示例(计入考试时长),代码完成后请务必点击【保存并调试】按钮(可以多次,以最高得分记分),否则答案不做保存,调试完成点击【提交本题型】按钮,最后交卷。
7、考试时间 150 分钟,满分 400 分,及格 150 分。卷面共 3 道题,2 道一星难度,一题 100 分,1 道二星难度,一题200 分,考试语言可自行选择。
8、考试时允许使用草稿纸,请提前准备纸笔。如果需要上厕所,请在考试前提前准备好,避免考试中途离开座位,出现离开监控的情况。
9、考试期间如遇到断电、断网、死机等问题,可以关闭浏览器重新打开试卷链接即可继续做题,遇到问题请及时反馈给 HR。
机试注意事项:
编码时,注意import所需要的包,代码工具无法自动提示相关类的引入,代码补全及tab空格提示已默认开启;
针对java的代码补全功能并不强大,很多提示无法得出,请勿过分依赖于代码补全功能,应早做准备,熟记字符串及数组等常用方法名称,例如jdk1.8的排序方法在代码提示中就无法得出,如下图:
当代码完成一部分时,如需调试,请点击左上角的自测,打开自测页面,如下图:
下图中自测页面个文本框的解释如下图:
150分是华为统一的通过分数线。但各部门的要求又不一样,通常非目标院校的分数要求更高些。300+是高分,260+是较为安全的分数。总之分数越高越高,对后续的定级、综面、HR审批都有益处。
一般来说对接你的HR会问你啥时候可以笔试,你觉得准备的ok了就会发你一个机考链接,这个机考链接的有效期为7天,你在这七天时间内找个时间参加考试即可!华为OD机考会影响薪资的,300分以上和300分一下的价格是不一样的,所以我建议大家好好准备争取超过300分,能拿高分就拿高分。
机试没考过的话,会有半年的冷冻期。
为什么我说华为机考并不难,原因很简单,因为这个考试是有题库的!你在进入机考页面的时候网页上会显示正在组卷中,其实就是去题库里找两个简单题一道复杂题。既然这是一场有题库的考试,那我们最重要的当然是获取最全面的题库对吧,这个大家放心我已经帮大家整理好了,未来也会持续更新!
我觉得准备机考前的第一件事是选择一门合适的编程语言,华为机考对编程语言是没有限定的,你可以选择自己最喜欢的编程语言。考虑到大部分华为OD的应聘者都是技术基础较为薄弱甚至非科班的同学,我还是满建议大家使用Java来应付机考还有后面的手撕代码的,当然如果你会JS、Python、C++的话也可以用来考试。
如果基于我提供的题库开始认认真真刷题,不开玩笑的说遇到原题是肯定的,正常情况下遇到两道原题是不难的,很多同学是直接三题全部命中!因为华为题库三个月会更新一部分新题进来,所以大家尽量不要在新题刚刚更新的时候去做,建议在新题发布一个月后再考我感觉命中两道很正常的!
下面,哪吒将华为OD机试真题归归类,让大家一目而了然。
关于订阅华为OD机试真题的后续问题
- 订阅专栏后,专栏内的文章都可看,以后还会继续更新新题;
- 每道题都包含题目、解题思路、代码详解(关键行包含详细注释)、代码运行截图(保证代码100%正确,通过率100%);
- 已经订阅的小伙伴,推荐新人订阅可享 8 折优惠,私信我即可;
在考试的时候,最好不要用优快云专栏里的源码去答题,因为华为OD机试是有查重的,这个一定要注意!最好是改一改变量名称,加一加注释,改一改逻辑顺序,掌握答题思路才是关键,下面的题中我都加了详细的答题思路,代码中也有详细的注释说明,代码运行是100%正确无误的,每一题都有样例测试,全网独一份。
如果你刚刚参加完机试考试,欢迎提供真题到哪吒这里,直接红包转账收题。
很多考过的小伙伴,总结了宝贵的经验,多刷题,先易后难,前期积累自信,后期逐一突破,效果最佳。
华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢?
我觉得可以按照“算法和数据结构”去刷,把华为OD机试涉及到的“算法和数据结构”列出来,一个算法刷10道题,那我岂不是无敌了?
首先,了解算法和数据结构有哪些知识点,在后面的刷题中有 大局观 。
下面是我花了一天时间整理的 算法和数据结构的知识结构,大家可以看看。
为了更高效、更有乐趣的刷题,学习,即日起开展 “华为OD七日集训”。
有兴趣参加 “华为OD七日集训”的小伙伴,点击文末名片,扫描一下,回复华为OD即可。
下面是为大家 精心挑选的华为OD机试题单,并根据题目知识点的类型分好了类别,大家可以根据每个知识点,进行有针对性的刷题。
一、逻辑分析
华为OD机试 - 寻找关键钥匙(Java 2025 B卷 100分)
华为OD机试 - 生成回文素数(Java 2025 B卷 100分)
华为OD机试 - 九宫格按键输入 - 逻辑分析(Java 2025 B卷 200分)
华为OD机试 - 计算某字符出现次数(Java 2025 B卷 100分)
华为OD机试 - 停车场最大距离(Java 2025 B卷 100分)
华为OD机试 - 模拟数据序列化传输(Java 2025 B卷 200分)
华为OD机试 - 最远足迹(Java 2025 B卷 100分)
华为OD机试 - 计算最大乘积(Java 2025 B卷 100分)
华为OD机试 - 求解连续数列(Java 2025 B卷 100分)
华为OD机试 - 相同数字组成图形的周长(Java 2025 B卷 100分)
华为OD机试 - 快递运输 - 送分题(Java 2025 B卷 100分)
华为OD机试 - We Are A Team(Java 2025 B卷 100分)
华为OD机试 - 乱序整数序列两数之和绝对值最小(Java 2025 B卷 100分)
华为OD机试 - TLV解析Ⅰ(Java 2025 B卷 100分)
华为OD机试 - 求字符串中所有整数的最小和 (Java 2025 B卷 100分)
华为OD机试 - ABR 车路协同场景 - (Java 2025 B卷 100分)
华为OD机试 - 最长的完全交替连续方波信号(Java 2025 B卷 200分)
华为OD机试 - 求最小步数(Java 2025 B卷 100分)
华为OD机试 - 拔河比赛(Java 2025 B卷 100分)
华为OD机试 - 评论转换输出(Java 2025 B卷 100分)
华为OD机试 - DNA序列(Java 2025 B卷 100分)
华为OD机试 - 不开心的小朋友(Java 2025 B卷 100分)
华为OD机试 - 快递投放问题(Java 2025 B卷 100分)
华为OD机试 - 网上商城优惠活动(Java 2025 B卷 100分)
华为OD机试 - 箱子之形摆放(Java 2025 B卷 100分)
华为OD机试 - 最大花费金额(Java 2025 B卷 200分)
华为OD机试 - 投篮大赛(Java 2025 B卷 100分)
华为OD机试 - 最小的调整次数(Java 2025 B卷 200分)
华为OD机试 - 最多提取子串数目(Java 2025 B卷 100分)
华为OD机试 - 知识图谱新词挖掘1(Java 2025 B卷 100分)
华为OD机试 - 不爱施肥的小布(Java 2025 B卷 100分)
华为OD机试 - 火星文计算(Java 2025 B卷 100分)
华为OD机试 - 勾股数元组(Java 2025 B卷 100分)
华为OD机试 - 货币单位换算(Java 2025 B卷 100分)
华为OD机试 - 喊7的次数重排(Java 2025 B卷 200分)
华为OD机试 - 吃到最多的刚好合适的菜(Java 2025 B卷 100分)
华为OD机试 - 人民币转换(Java 2025 B卷 100分)
华为OD机试 - 整理扑克牌(Java 2025 B卷 100分)
华为OD机试 - 机房布局(Java 2025 B卷 100分)
华为OD机试 - 数组组成的最小数字(Java 2025 B卷 100分)
华为OD机试 - 分班 - 数据结构list(Java 2025 B卷 100分)
华为OD机试 - 素数伴侣(Java 2025 B卷 100分)
华为OD机试 - 求最大数字(Java 2025 B卷 100分)
华为OD机试 - 仿LISP运算 - 逻辑分析(Java 2025 B卷 200分)
华为OD机试 - 拼接URL(Java 2025 B卷 100分)
华为OD机试 - 矩形相交的面积 - 逻辑分析(Java 2025 B卷 100分)
二、数据结构
1、线性表
① 数组
华为OD机试 - 移动元素获得最大数组和 - 数组(Java 2025 B卷 200分)
华为OD机试 - 差值数组不同的字符串 - 数组(Java 2025 B卷 100分)
② 双指针
华为OD机试 - 两个集合输出距离最近的数字 - 双指针(Java 2025 B卷 100分)
华为OD机试 - 事件推送 - 双指针(Java 2025 B卷 100分)
华为OD机试 - 租车骑绿道 - 双指针(Java 2025 B卷 100分)
华为OD机试 - 猜字谜 - 双指针(Java 2025 B卷 100分)
华为OD机试 - 最长连续子序列 - 双指针(Java 2025 B卷 100分)
华为OD机试 - 字符串序列判定 - 双指针(Java 2025 B卷 100分)
2、map与list
华为OD机试 - 数组排列求和 - HashSet、分类和迭代(Java 2025 B卷 200分)
华为OD机试 - 真正的密码 - 数据结构list(Java 2025 B卷 100分)
华为OD机试 - 最大N个数与最小N个数的和 - 数据结构Set与TreeSet(Java 2025 B卷 100分)
华为OD机试 - 城市聚集度(Java 2025 B卷 200分)
华为OD机试 - 最优策略组合下的总的系统消耗资源数(Java 2025 B卷 100分)
华为OD机试 - 简易内存池 - 逻辑分析(Java 2025 B卷 200分)
3、队列
华为OD机试 - 打印任务排序 - 队列(Java 2025 B卷 100分)
4、栈
华为OD机试 - 消消乐游戏 - 栈Stack(Java 2025 B卷 100分)
华为OD机试 - 荒岛求生 - 栈Stack(Java 2025 B卷 100分)
5、滑动窗口
华为OD机试 - 求满足条件的最长子串的长度 - 滑动窗口(Java 2025 B卷 100分)
三、算法
1、基础算法
① 贪心算法
华为OD机试 - 最大化控制资源成本 - 扫描线算法(Java 2025 B卷 200分)
华为OD机试 - 数组合并 - 轮询调度算法(Java 2025 B卷 100分)
华为OD机试 - 最旺店铺 - 枚举(Java 2025 B卷 200分)
华为OD机试 - 幻方修复(Java 2025 B卷 200分)
华为OD机试 - 最多等和不相交连续子序列 - 贪心算法(Java 2025 B卷 100分)
② 线性扫描
华为OD机试 - 查找字符串中相同字符连续出现的最大次数 - 线性扫描(Java 2025 B卷 100分)
华为OD机试 - 计算某个字符出现次数 - 线性扫描(Java 2025 B卷 100分)
华为OD机试 - 正则表达式替换 - 线性扫描(Java 2025 A卷 100分)
华为OD机试 - 最大股票收益 - 线性扫描(Java 2025 A卷 100分)
华为OD机试 - 路灯照明II - 线性扫描(Java 2025 A卷 100分)
③ 二分查找
华为OD机试 - 生日礼物 - 二分查找(Java 2025 B卷 100分)
华为OD机试 - 数据最节约的备份方法 - 二分查找(Java 2025 B卷 100分)
华为OD机试 - 猴子吃桃 - 二分查找(Java 2025 B卷 100分)
⑤ 回溯
华为OD机试 - 符合要求的元组的个数 - 回溯(Java 2025 B卷 100分)
华为OD机试 - 硬件产品销售方案 - 回溯(Java 2025 B卷 200分)
华为OD机试 - 最多几个直角三角形(Java 2025 B卷 100分)
华为OD机试 - 执行时长 - 回溯(Java 2025 B卷 100分)
⑥ 全排列递归
华为OD机试 - 第k个排列 - 全排列递归(Java 2025 A卷 100分)
华为OD机试 - 考古问题 - 回溯、全排列问题(Java 2024 C卷 200分)
⑦ 排序算法
华为OD机试 - 比赛的冠亚季军(Java 2025 A卷 100分)
⑧ Dijkstra算法
华为OD机试 - 最小传输时延 - Dijkstra算法(Java 2025 B卷 200分)
华为OD机试 - 寻找最优的路测线路 - Dijkstra算法(Java 2024 E卷 200分)
2、字符串
① 字符串处理
华为OD机试 - 报文重排序(Java 2025 B卷 200分)
华为OD机试 - 字符串比较、符合条件的子串长度(Java 2025 B卷 100分)
华为OD机试 - 秘钥格式化(Java 2025 B卷 100分)
华为OD机试 - 公共子串计算(Java 2025 B卷 100分)
华为OD机试 - 最长公共后缀(Java 2025 B卷 100分)
华为OD机试 - 挑选字符串(Java 2025 B卷 100分)
华为OD机试 - 字符串解密(Java 2025 B卷 100分)
华为OD机试 - 字符串分割(Java 2025 B卷 100分)
华为OD机试 - 英文输入法(Java 2025 B卷 100分)
华为OD机试 - 判断字符串子序列 - 倒序遍历(Java 2025 B卷 100分)
② KMP
华为OD机试 - 最小循环子数组(Java 2025 B卷 100分)
③ 正则表达式
华为OD机试 - 数字字符串组合倒序 - 正则表达式(Java 2025 B卷 100分)
华为OD机试 - 字符匹配 - 正则表达式(Java 2025 B卷 100分)
华为OD机试 - 最长的指定瑕疵度的元音子串 - 正则表达式(Java 2025 B卷 200分)
3、深度优先搜索
华为OD机试 - MVP争夺战 - 深度优先搜索dfs(Java 2025 B卷 200分)
华为OD机试 - 加密算法 - 深度优先搜索dfs(Java 2025 B卷 200分)
华为OD机试 - 最大岛屿体积 - 深度优先搜索dfs(Java 2025 B卷 200分)
华为OD机试 - 快速人名查找 - 深度优先搜索dfs(Java 2025 B卷 200分)
华为OD机试 - 跳格子游戏 - 深度优先搜索dfs算法(Java 2025 B卷 200分)
华为OD机试 - 文件目录大小 -深度优先搜索(Java 2025 B卷 200分)
华为OD机试 - 查找树中元素 - 深度优先搜索DFS(Java 2025 B卷 100分)
华为OD机试 - 区间交集 - 深度优先搜索dfs算法(滥用)(Java 2025 B卷 200分)
① 广度优先搜索
华为OD机试 - 购物 - 广度优先搜索BFS、优先队列(Java 2025 B卷 200分)
华为OD机试 - 上班之路/是否能到达公司 - 广度优先搜索bfs(Java 2025 B卷 100分)
华为OD机试 - 矩阵中非1的元素个数 - 广度优先搜索(Java 2025 B卷 200分)
② 矩阵、最短路径问题
华为OD机试 - 最小传输时延Ⅱ - 矩阵、最短路径问题 (Java 2025 B卷 200分)
4、动态规划
① 基础dp
华为OD机试 - 水仙花数Ⅱ - 动态规划(Java 2025 B卷 200分)
华为OD机试 - 光伏场地建设规划 - 动态规划(Java 2025 B卷 100分)
② 背包dp
华为OD机试 - 最多获得的短信条数 - 动态规划(Java 2025 B卷 100分)
5、数学
华为OD机试 - 完全数计算(Java 2025 B卷 100分)
华为OD机试 - 数字颠倒(Java 2025 B卷 100分)
华为OD机试 - 出错的或电路 - 二进制 - (Java 2025 B卷 100分)