华为OD机试通常指的是华为在线开发(Onsite Development)机试,是华为公司招聘过程中的一项技术测试,主要针对求职者的编程能力和技术水平进行评估。这种机试通常包括编程题和技术题,目的是测试应聘者在实际工作中遇到问题时的解决能力。
一、如何备考华为OD机试?
1、基础知识复习
加强对编程语言的掌握,常用的有C/C++、Java、Python等。
理解并熟练使用数据结构(如数组、链表、栈、队列、树、图等)和基本算法(如排序、搜索、递归等)。
2、练习编程题
找准题库,开始刷题,熟悉华为OD机试常见的题型和题目风格。
3、模拟考试
在准备过程中,模拟真实的考试环境,限时完成一定数量的题目。
分析自己在模拟考试中的表现,找出弱点并加以改进。
4、优化代码和思维
练习写出简洁、高效的代码。
学会快速地识别问题的关键点,并找到合适的解决策略。
二、如何刷题以取得高分?
- 理解题意:在开始编码前确保完全理解了题目的要求和限制条件。
- 设计算法:在纸上或在思考中先构思出解决方案,然后再开始编码。
- 编写代码:保持代码清晰、结构良好,并注重代码的可读性和可维护性。
- 调试和测试:写完代码后,通过测试用例来验证代码的正确性,确保涵盖各种边界情况。
- 优化:检查是否有更优的解决方案,或者是否可以进一步优化现有的代码以提高效率。
三、华为机试考试时间
一般在招聘流程中的某个环节,通常在初步筛选之后。具体时间会由HR通过邮件或电话通知。
有时候,公司可能会提供一个时间范围让你选择最合适的时间进行测试。
四、准备建议
一旦接到华为的考试通知,请确认考试的具体日期和时间,并确保你在那时有充足的时间和适宜的环境进行考试。
确保你的计算机环境符合考试要求,例如安装必要的软件、确保网络连接稳定等。
在考试中合理分配时间,先完成那些你最擅长或最容易的题目,确保尽可能多地获得分数。
华为OD机试主要考查应聘者的编程能力、逻辑思维和问题解决技能。虽然具体题目每次可能有所不同,但通常会涉及以下几类算法和数据结构的题目:
五、常考的算法类型:
1、字符串处理:
字符串的查找、替换、排序和转换。
字符串匹配技术,如KMP算法。
2、数组和矩阵:
数组的遍历、搜索(如二分搜索)、排序(如快速排序、归并排序)。
多维数组操作,如旋转图像、矩阵路径问题。
3、链表操作:
单链表和双链表的插入、删除、反转。
快慢指针问题,如检测环、找到中间节点。
4、树和图的遍历:
二叉树的遍历(前序、中序、后序和层序遍历)。
图的搜索算法,如深度优先搜索(DFS)、广度优先搜索(BFS)。
5、动态规划:
常见问题如最长公共子序列、最大子数组和背包问题。
斐波那契数列变种、硬币兑换问题。
6、贪心算法:
如区间覆盖、活动选择问题。
7、哈希表和映射:
用于解决频率统计、快速查找和数据去重的问题。
六、华为OD面试
华为的招聘流程可能会有所变化,具体取决于职位、地点以及公司的具体需求。然而,通常在通过了华为的机试(OD)之后,候选人将进入面试阶段,这通常包括几轮面试。
1、技术面试
通常有1至2轮。
主要针对应聘者的专业技能、项目经验以及解决问题的能力。
也可能包括一些编程实操或案例分析。
2、HR面试
通常是最后一轮面试。
主要评估候选人的职业期望、价值观与公司文化的匹配程度,以及其他非技术方面的素质。
3、面试内容
(1)技术面试
编程能力:可能会要求现场编程或解释你在机试中的解题思路。
项目经验:讨论你以前的项目,特别是与应聘职位相关的项目。准备讨论你在项目中的角色、你解决的具体技术问题以及你的贡献。
技术知识:根据职位需求,可能会涉及计算机科学的基础知识,如数据结构、算法、系统设计、网络、操作系统等。
(2)HR面试
个人经历和职业规划:会问到你的学习和工作经历,为什么选择华为,以及你的职业发展目标。
团队合作与冲突解决:可能会询问你以往如何在团队中工作,以及如何处理工作中的冲突。
压力管理:如何处理工作压力和紧张情况。
价值观和适配性:评估你的价值观是否与公司文化相符。
4、如何准备面试
深入了解华为:研究华为的最新动态、产品、技术以及公司文化。
复习专业知识:尤其是和你申请的职位相关的技术领域。
STAR方法:准备面试时,可以使用情境、任务、行动、结果(STAR)的格式来组织你的回答,这有助于清晰地传达你的经验和成就。
模拟面试:与朋友或通过职业服务进行模拟面试,有助于提高你的面试技巧和自信心。
后面是为大家 精心挑选的华为OD机试题单,并根据题目知识点的类型分好了类别,大家可以根据每个知识点,进行有针对性的刷题。
一、逻辑分析
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 数字涂色 | 逻辑分析 | C卷 | 100 |
| 机智的外卖员 | 逻辑分析 | C卷 | 100 |
| 最大社交距离 | 逻辑分析 | C卷 | 100 |
| 报文回路 | 逻辑分析 | C卷 | 100 |
| 购买水果最便宜的方案 | 逻辑分析 | C卷 | 100 |
| 乘坐保密电梯 | 逻辑分析 | C卷 | 100 |
| 异常的打卡记录 | 逻辑分析 | C卷 | 100 |
| 运输时间 | 逻辑分析 | C卷 | 200 |
| AI面板识别 | 逻辑分析 | B卷 | 100 |
| 求字符串中所有整数的最小和 | 逻辑分析 | B卷 | 100 |
| 羊、狼、农夫过河 | 逻辑分析 | B卷 | 100 |
| ABR 车路协同场景 | 逻辑分析 | B卷 | 100 |
| 计算观看演唱会场次 | 逻辑分析 | B卷 | 100 |
| 导师请吃火锅 | 逻辑分析 | B卷 | 100 |
| 仿LISP运算 | 逻辑分析 | B卷 | 100 |
| 九宫格按键输入 | 逻辑分析 | B卷 | 100 |
| 书籍叠放 | 逻辑分析 | B卷 | 100 |
| 德州扑克 | 逻辑分析 | B卷 | 100 |
| 最长的完全交替连续方波信号 | 逻辑分析 | B卷 | 200 |
二、字符串
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 查找舆情热词 | 字符串 | C卷 | 100 |
| 字符串统计 | 字符串 | C卷 | 100 |
| 字符串化繁为简 | 字符串 | C卷 | 100 |
| 秘钥格式化 | 字符串 | B卷 | 100 |
| 连续字母长度 | 字符串 | B卷 | 100 |
| 字符串筛选排序 | 字符串 | B卷 | 100 |
| 按索引范围翻转文章片段 | 字符串 | B卷 | 100 |
| 报文重排序 | 字符串 | B卷 | 100 |
| 相对开音节 | 字符串 | B卷 | 100 |
| 敏感字段加密 | 字符串 | B卷 | 100 |
| 字符串分割 | 字符串 | B卷 | 100 |
| 按单词下标区间翻转文章内容 | 字符串 | B卷 | 100 |
| 寻找相同子串 | 字符串 | B卷 | 100 |
| 判断字符串子序列 | 字符串 | B卷 | 100 |
三、数据结构
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| IPv4地址转换成整数 | 数组 | B卷 | 100 |
| 数组去重和排序 | map与list | C卷 | 100 |
| 垃圾信息拦截 | map与list | C卷 | 100 |
| 简易内存池 | map与list | B卷 | 200 |
| 路灯照明问题 | map与list | B卷 | 100 |
| 最大N个数与最小N个数的和 | map与list | B卷 | 100 |
| 全量和已占用字符集 | map与list | B卷 | 100 |
| 告警抑制 | map与list | B卷 | 100 |
| 报文回路 | map与list | B卷 | 100 |
| 异常的打卡记录 | map与list | B卷 | 100 |
| 最优策略组合下的总的系统消耗资源数 | map与list | B卷 | 100 |
| 城市聚集度 | map与list | B卷 | 200 |
| 最长的顺子 | map与list | B卷 | 200 |
| 打印任务排序 | 队列 | C卷 | 100 |
| 寻找密码 | 优先队列 | B卷 | 100 |
| 支持优先级的队列 | 优先队列 | B卷 | 100 |
| 模拟消息队列 | 队列 | B卷 | 100 |
| 最差产品奖 | 双端队列 | B卷 | 200 |
| 统一限载货物数最小值 | 队列 | B卷 | 200 |
| 特异性双端队列 | 链表 | C卷 | 100 |
| 输出单向链表中倒数第k个结点 | 链表 | B卷 | 100 |
| 最大括号深度 | 栈 | B卷 | 100 |
| 消消乐游戏 | 栈 | B卷 | 100 |
| 分奖金 | 栈 | B卷 | 100 |
| 荒岛求生 | 栈 | B卷 | 100 |
| 阿里巴巴找黄金宝箱(IV) | 栈 | B卷 | 100 |
| 二叉树的所有路径 | 栈 | B卷 | 100 |
| 简单的解压缩算法 | 栈 | B卷 | 100 |
四、双指针
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 阿里巴巴找黄金宝箱(I) | 单指针 | B卷 | 100 |
| 绘图机器 | 双指针 | C卷 | 100 |
| 求最多可以派出多少支团队 | 双指针 | B卷 | 100 |
| 工号不够用了怎么办 | 双指针 | B卷 | 100 |
| 寻找身高相近的小朋友 | 双指针 | B卷 | 100 |
| 最长连续子序列 | 双指针 | B卷 | 100 |
| 考勤信息 | 双指针 | B卷 | 100 |
| 求满足条件的最长子串的长度 | 双指针 | B卷 | 100 |
| 阿里巴巴找黄金宝箱(I) | 双指针 | B卷 | 100 |
| 非严格递增连续数字序列 | 双指针 | B卷 | 100 |
| 太阳能板最大面积 | 双指针 | B卷 | 100 |
| 叠积木1 | 双指针 | B卷 | 200 |
| 数组连续和 | 滑动窗口 | C卷 | 100 |
| 最左侧冗余覆盖子串 | 滑动窗口 | C卷 | 100 |
| 找出通过车辆最多颜色 | 滑动窗口 | B卷 | 100 |
| 计算最接近的数 | 滑动窗口 | B卷 | 100 |
| 用连续自然数之和来表达整数 | 滑动窗口 | B卷 | 100 |
| 滑动窗口最大和 | 滑动窗口 | B卷 | 100 |
| 关联子串 | 滑动窗口 | B卷 | 100 |
| 补种未成活胡杨 | 滑动窗口 | B卷 | 100 |
| 最大花费金额 | 滑动窗口 | B卷 | 100 |
| 高矮个子排队 | 滑动窗口 | B卷 | 100 |
| 观看文艺汇演问题 | 滑动窗口 | B卷 | 200 |
五、矩阵、二叉树
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 服务器广播 | 矩阵 | C卷 | 200 |
| 疫情扩散时间计算 | 矩阵 | C卷 | 200 |
| 计算疫情扩散时间 | 矩阵 | C卷 | 200 |
| 寻找最大价值的矿堆 | 矩阵 | B卷 | 200 |
| 矩阵稀疏扫描 | 矩阵 | B卷 | 200 |
| 开心消消乐 | 并查集 | B卷 | 100 |
| 发广播 | 并查集 | C卷 | 200 |
| 快递业务站 | 并查集 | B卷 | 200 |
| 最少数量线段覆盖 | 二叉树 | B卷 | 100 |
| 二维伞的雨滴效应 | 二叉树 | B卷 | 100 |
| 数组二叉树 | 二叉树 | B卷 | 200 |
六、贪心思维
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 计算礼品发放的最小分组数目 | 贪心思维 | B卷 | 100 |
| 数字序列比大小 | 贪心思维 | B卷 | 100 |
| 阿里巴巴找黄金宝箱(II) | 贪心思维 | B卷 | 100 |
| 最短木板长度 | 贪心思维 | B卷 | 100 |
| 贪心的商人 | 贪心思维 | B卷 | 100 |
七、二分查找
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 猴子吃桃 | 二分查找 | C卷 | 100 |
| 机器人搬砖 | 二分查找 | C卷 | 100 |
| 批量处理任务 | 二分查找 | C卷 | 200 |
| 最佳植树距离 | 二分查找 | B卷 | 100 |
| 食堂供餐 | 二分查找 | B卷 | 100 |
| 生日礼物 | 二分查找 | B卷 | 100 |
| 服务中心选址 | 二分查找 | B卷 | 100 |
| 不爱施肥的小布 | 二分查找 | B卷 | 100 |
| 数据最节约的备份方法 | 二分查找 | B卷 | 100 |
| 评论转换输出 | 分治递归 | B卷 | 100 |
| 分糖果 | 分治递归 | B卷 | 100 |
| 微服务的集成测试 | 分治递归 | B卷 | 100 |
八、回溯
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 全排列 | 回溯 | C卷 | 100 |
| 单词搜索,找到它 | 回溯 | C卷 | 100 |
| 新员工考试 | 回溯 | C卷 | 100 |
| 考古问题 | 回溯 | C卷 | 200 |
| 字符串拼接 | 回溯 | C卷 | 200 |
| 跳房子II | 回溯 | C卷 | 200 |
| 符合要求的元组的个数 | 回溯 | B卷 | 100 |
| 租车骑绿道 | 回溯 | B卷 | 100 |
| VLAN资源池 | 回溯 | B卷 | 100 |
| BOSS的收入 | 回溯 | B卷 | 100 |
| 执行时长 | 回溯 | B卷 | 100 |
| 查找接口成功率最优时间段 | 回溯 | B卷 | 100 |
| 最多几个直角三角形 | 回溯 | B卷 | 100 |
| 检查是否存在满足条件的数字组合 | 回溯 | B卷 | 100 |
| 硬件产品销售方案 | 回溯 | B卷 | 200 |
| 云短信平台优惠活动 | 回溯 | B卷 | 200 |
九、排列
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 第k个排列 | 排列递归 | B卷 | 100 |
| 比赛的冠亚季军 | 排序算法 | B卷 | 100 |
| 拔河比赛 | 排序算法 | B卷 | 100 |
| 最小循环子数组 | KMP | B卷 | 100 |
十、正则表达式
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 压缩报文还原 | 正则表达式 | B卷 | 100 |
| 最长的指定瑕疵度的元音子串 | 正则表达式 | B卷 | 100 |
| 数字字符串组合倒序 | 正则表达式 | B卷 | 100 |
| 相对开音节 | 正则表达式 | B卷 | 100 |
十一、深度优先搜索DFS
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 项目规划 | 深度优先搜索DFS | C卷 | 100 |
| 数字排列 | 深度优先搜索DFS | C卷 | 100 |
| 猜密码 | 深度优先搜索DFS | C卷 | 100 |
| 过滤组合字符串 | 深度优先搜索DFS | B卷 | 100 |
| 文件目录大小 | 深度优先搜索DFS | B卷 | 100 |
| 战场索敌 | 深度优先搜索DFS | B卷 | 100 |
| 查找单入口空闲区域 | 深度优先搜索DFS | B卷 | 100 |
| 等和子数组最小和 | 深度优先搜索DFS | B卷 | 100 |
| 区间交集 | 深度优先搜索DFS | B卷 | 200 |
| 跳格子游戏 | 深度优先搜索DFS | B卷 | 200 |
| 欢快的周末 | 深度优先搜索DFS | B卷 | 200 |
| 宜居星球改造计划 | 深度优先搜索DFS | B卷 | 200 |
| 目录删除 | 深度优先搜索DFS | B卷 | 200 |
| 最少面试官数 | 深度优先搜索DFS | B卷 | 200 |
| 连续出牌数量 | 深度优先搜索DFS | B卷 | 200 |
| 任务最优调度 | 深度优先搜索DFS | B卷 | 200 |
| 机器人走迷宫 | 深度优先搜索DFS | B卷 | 200 |
| 最长广播效应 | 广度优先搜索BFS | C卷 | 100 |
| 污染水域 | 广度优先搜索BFS | C卷 | 200 |
| 矩阵中非1的元素个数 | 广度优先搜索BFS | B卷 | 200 |
| 计算网络信号 | 广度优先搜索BFS | B卷 | 200 |
| 按图找最近的路 | 矩阵、最短路径问题 | C卷 | 100 |
| 最小传输时延Ⅱ | 矩阵、最短路径问题 | B卷 | 200 |
| 快速开租建站 | 拓扑排序 | B卷 | 200 |
十二、 动态规划
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| MELON的难题 | 动态规划 | B卷 | 100 |
| 玩牌高手 | 动态规划 | B卷 | 100 |
| 数列描述 | 动态规划 | B卷 | 100 |
| 跳格子2 | 动态规划 | B卷 | 100 |
| 猴子爬山 | 动态规划 | B卷 | 100 |
| 光伏场地建设规划 | 动态规划 | B卷 | 100 |
| 字符串加密 | 动态规划 | B卷 | 100 |
| 字符匹配 | 动态规划 | B卷 | 100 |
| 查找重复代码 | 动态规划 | B卷 | 100 |
| 最多获得的短信条数 | 动态规划 | B卷 | 100 |
| 不含101的数 | 动态规划 | B卷 | 200 |
| 通过软盘拷贝文件 | 动态规划 | B卷 | 200 |
| 代表团坐车 | 动态规划 | B卷 | 200 |
| 核酸检测人员安排 | 动态规划 | B卷 | 200 |
| 递增字符串 | 动态规划 | B卷 | 200 |
十三、数学问题
| 题目 | 考点 | 考卷 | 分值 |
|---|---|---|---|
| 分苹果 | 二进制 | B卷 | 100 |
| 分积木运算(Java 2023 B卷 200分) | 二进制 | B卷 | 100 |
| 出错的或电路 - | 二进制 | B卷 | 100 |
| 进制转换 | 二进制 | B卷 | 100 |
| 经典屏保 | 数学问题 | B卷 | 100 |
| 完全数计算 | 数学问题 | B卷 | 100 |
| 自守数 | 数学问题 | B卷 | 100 |
| 素数之积 | 数学问题 | B卷 | 100 |
| 数据分类 | 数学问题 | B卷 | 100 |
| 经典屏保 | 数学问题 | B卷 | 100 |
| 查找众数及中位数 | 数学问题 | B卷 | 100 |