华为OD机试大全(java、python、c++)
文章平均质量分 50
每周定期维护、更新最新题。不断累计收录最新、最全题型,通用java实现,部分支持python、C++等语言,持续补充题解思路。主旨在于解法提供思路,理解算法核心思想。
WRJ_Jack
这个作者很懒,什么都没留下…
展开
-
2024华为OD机试卷(java\python\c++)全部+详细解析+机试攻略介绍
2024OD机试卷 (java\python\c++)全部题目目录原创 2024-05-19 09:33:34 · 921 阅读 · 0 评论 -
2024OD机试卷-掌握的单词个数(java\python\c++)
有一个字符串数组Q words 和一个字符串 chars,假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。words 的字符仅由 a-z 英文小写字母组成,例如"abc" chars 由 a-z 英文小写字母和 "?"组成。其中英文"?"表示万能字符,能够在拼写时当作任意一个英文字母Q。例如:"?"可以当作"a"等字母。注意:每次拼写时,chars 中的每个字母和万能字符都只能使用一次。输出词汇表 words 中你掌握的所有单词的个数。没原创 2024-04-27 12:01:01 · 141 阅读 · 1 评论 -
2024OD机试卷-分配土地(java\python\c++)
从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种 不同的只数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地分配给村里做出巨大贡献的村民,请问此次分配土地,做出贡献的村民种最大会分配多大面积?解释:土地上的旗子为1,其坐标分别为(0,0),(2,1)以及(0,2),为了覆。盖所有旗子,矩阵需要覆盖的横坐标为0和2,纵坐标为0和2,所。由于不存在成对的小旗子,故而返回1,即一块土地的面积。旗子上的数字为1~500,土地边长不超过500。以面积为9,即(2-0+1)*(2-0+1)=9。原创 2024-04-27 11:20:51 · 144 阅读 · 0 评论 -
2024OD机试卷-最长子字符串的长度(二) (java\python\c++)
给你一个字符串 s,字符串 s 首尾相连成一个环形,请你在环中找出 'l'、'o'、'x' 字符都恰好出现了偶数次最长 子字符串 的长度。原创 2024-06-14 23:38:08 · 223 阅读 · 0 评论 -
2024OD机试卷-寻找最优的路测线路 (java\python\c++)
评估一个网络的 信号质量 ,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。现给出 R 行 C 列的整数数组 Cov,每个单元格的数值 S 即为该栅格的信号质量原创 2024-05-28 21:39:46 · 658 阅读 · 0 评论 -
2024OD机试卷-亲子游戏 (java\python\c++)
宝宝和妈妈参加亲子游戏,在一个二维矩阵(N*N)的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有 不同的 糖果数量,部分格子有障碍物。游戏规则 是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障碍物的格子,只能上下左右走。原创 2024-05-28 21:33:43 · 181 阅读 · 0 评论 -
2024OD机试卷-高效货运 (java\python\c++)
老李是货运公司承运人,老李的货车额定载货重量为 wt。现有两种货物:货物 A 单件重量为 wa,单件运费利润为 pa,货物 B 单件重量为 wb,单件运费利润为 pb老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割。老李单次满载运输可获得的最高利润是多少?原创 2024-05-28 21:27:22 · 96 阅读 · 0 评论 -
2024OD机试卷-电脑病毒感染 (java\python\c++)
一个 局域网 内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1。原创 2024-05-28 21:22:01 · 98 阅读 · 0 评论 -
2024OD机试卷-找单词 (java\python\c++)
给一个字符串和一个 二维字符数组 ,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“N”。1.需要按照字符串的字符组成 顺序搜索 ,且搜索到的位置必须是相邻单元格,其中“相邻单元格”是指那些水平相邻或垂直相邻的单元格。2.同一个单元格内的字母不允许被重复使用。3.假定在数组中最多只存在一个可能的匹配。原创 2024-05-27 22:49:15 · 169 阅读 · 0 评论 -
2024OD机试卷-矩阵匹配 (java\python\c++)
从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的 最小值 是多少。原创 2024-05-26 21:10:55 · 92 阅读 · 0 评论 -
2024OD机试卷-推荐多样性 (java\python\c++)
推荐多样性需要从多个列表中选择元素,一次性要返回 N 屏数据(窗口数量),每屏展示 K 个元素(窗口大小),选择策略:1. 各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推2. 每个列表的元素尽量均分为 N 份,如果不够 N 个,也要全部分配完,参考样例图:(1)从第一个列表中选择 4 条 0 1 2 3,分别放到 4 个窗口中(2)从第二个列表中选择 4 条 10 11 12 13,分别放到 4 个窗口中(3)从第三个列表中选择 4原创 2024-05-26 21:03:08 · 65 阅读 · 0 评论 -
2024OD机试卷-中文分词模拟器 (java\python\c++)
给定一个连续不包含空格的 字符串 ,该字符串仅包含英文小写字母及英文标点符号(逗号、分号、句号),同时给定词库,对该字符串进行精确分词。说明:1. 精确分词:字符串分词后,不会出现重叠。即"ilovechina",不同词库可分割为"i,love,china","ilove,china",不能分割出现重叠的"i,ilove,china",i 出现重叠2. 标点符号不成词,仅用于断句3. 词库:根据外部知识库统计出来的常用词汇例:dictionary = ["i", "love", "china", "原创 2024-05-26 20:55:56 · 68 阅读 · 0 评论 -
2024OD机试卷-分月饼 (java\python\c++)
中秋节,公司分 月饼 ,m 个员工,买了 n 个月饼,m ≤ n,每个员工至少分 1 个月饼,但可以分多个,单人分到最多月饼的个数是 Max1 ,单人分到第二多月饼个数是 Max2 ,Max1 - Max2 ≤ 3 ,单人分到第 n - 1 多月饼个数是 Max(n-1),单人分到第n多月饼个数是 Max(n) ,Max(n-1) – Max(n) ≤ 3,问有多少种分月饼的方法?原创 2024-05-26 20:50:40 · 42 阅读 · 0 评论 -
2024OD机试卷-可以组成网络的服务器 (java\python\c++)
在一个机房中, 服务器 的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。请你统计机房中最大的 局域网 包含的服务器个数。原创 2024-05-26 20:45:08 · 53 阅读 · 0 评论 -
2024OD机试卷-快递员的烦恼 (java\python\c++)
快递公司每日早晨,给每位快递员推送需要送到客户手中的快递以及路线信息,快递员自己又查找了一些客户与客户之间的路线距离信息,请你依据这些信息,给快递员设计一条 最短路径 ,告诉他最短路径的距离。原创 2024-05-26 20:40:18 · 71 阅读 · 0 评论 -
2024OD机试卷-启动多任务排序 (java\python\c++)
一个应用启动时,会有多个 初始化 任务需要执行,并且任务之间有依赖关系,例如A任务依赖B任务,那么必须在B任务执行完成之后,才能开始执行A任务。现在给出多条任务 依赖关系 的规则,请输入任务的顺序执行序列,规则采用贪婪策略,即一个任务如果没有依赖的任务,则立刻开始执行,如果同时有多个任务要执行,则根据任务名称字母顺序排序。例如:B任务依赖A任务,C任务依赖A任务,D任务依赖B任务和C任务,同时,D任务还依赖E任务。那么执行任务的顺序由先到后是:A任务,E任务,B任务,C任务,D任务这里A和E任务都原创 2024-05-26 20:33:01 · 49 阅读 · 0 评论 -
2024OD机试卷-跳马 (java\python\c++)
马是象棋(包括 中国象棋 和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或者直者走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称"马走日"字。给定 m 行 n 列的棋盘(网格图),棋盘上只有棋子象棋中的棋子“马”,并且每个棋子有等级之分,等级为 k 的马可以跳 1~k 步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置原创 2024-05-25 19:41:25 · 81 阅读 · 0 评论 -
2024OD机试卷-根据IP查找城市 (java\python\c++)
某业务需要根据终端的 IP地址 获取该终端归属的城市,可以根据公开的IP地址池信息查询归属城市。地址池格式如下:城市名=起始IP,结束IP起始和结束地址按照英文逗号分隔,多个地址段采用英文分号分隔。比如:City1=1.1.1.1,1.1.1.2;City1=1.1.1.11,1.1.1.16;City2=3.3.3.3,4.4.4.4;City3=2.2.2.2,6.6.6.6一个城市可以有多个IP段,比如City1有2个IP段。城市间也可能存在包含关系,如City3的IP段包含City2的I原创 2024-05-25 18:28:14 · 131 阅读 · 0 评论 -
2024OD机试卷-数字排列 (java\python\c++)
小明负责公司年会,想出一个趣味游戏:屏幕给出 1 ~ 9 中任意 4 个不 重复的 数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第 N 位置的数字,其中 N 为给出数字中最大的(如果不到这么多数字则给出最后一个)。2 可以当作 5 来使用,5 也可以当作 2 来使用进行数字拼接,且屏幕不能同时给出 2 和 5;6 可以当作 9 来使用,9 也可以当作 6 来使用进行数字拼接,且屏幕不能同时给出 6 和 9。如给出:1,4,8,7,则可以拼接的数字为:1,4,7,8,14,17,1原创 2024-05-25 18:16:00 · 59 阅读 · 0 评论 -
2024OD机试卷-最大社交距离 (java\python\c++)
疫情期间需要大家保证一定的 社交距离 ,公司组织开交流会议。座位一排共 N 个座位,编号分别为 [0, N - 1] 。要求员工一个接着一个进入会议室,并且可以在任何时候离开会议室。满足:每当一个员工进入时,需要坐到最大社交距离(最大化自己和其他人的距离的座位);如果有多个这样的座位,则坐到索引最小的那个座位。原创 2024-05-25 15:18:42 · 77 阅读 · 0 评论 -
2024OD机试卷-反射计数 (java\python\c++)
给定一个包含 0 和 1 的二维矩阵。给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面发射。无论物体经过 0 还是 1,都不影响其速度。请计算并给出经过 t 时间单位后,物体经过 1 点的次数。原创 2024-05-25 14:31:06 · 45 阅读 · 0 评论 -
2024OD机试卷-字符串拼接 (java\python\c++)
给定 M(0 < M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为 N(0 < N ≤ 5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回0。原创 2024-05-25 13:48:27 · 431 阅读 · 0 评论 -
2024OD机试卷-员工派遣 (java\python\c++)
某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工。部门每个员工有一个员工号(1,2,3,......),工号连续,从1开始。原创 2024-05-25 13:06:08 · 268 阅读 · 0 评论 -
2024OD机试卷-园区参观路径 (java\python\c++)
园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条 不同的 参观路径。原创 2024-05-25 12:51:13 · 172 阅读 · 0 评论 -
2024OD机试卷-停车场车辆统计 (java\python\c++)
特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。统计停车场最少可以停多少辆车,返回具体的数目。原创 2024-05-19 09:00:04 · 62 阅读 · 0 评论 -
2024OD机试卷-最大N个数与最小N个数的和 (java\python\c++)
给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。说明:数组中数字范围[0, 1000]最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1原创 2024-05-19 08:56:11 · 54 阅读 · 0 评论 -
2024OD机试卷-字符串筛选排序 (java\python\c++)
输入一个由N个大小写字母组成的字符串按照 ASCII码 值从小到大进行排序查找字符串中第K个最小ASCII码值的字母(k>=1)输出该字母所在字符串中的 位置索引 (字符串的第一个位置索引为0)k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引如果有重复字母则输出字母的最小位置索引原创 2024-05-19 08:51:51 · 52 阅读 · 0 评论 -
2024OD机试卷-多段线数据压缩 (java\python\c++)
下图中,每个方块代表一个像素,每个像素用其行号和列号表示。为简化处理,多线段的走向只能是水平、竖直、斜向45度。上图中的多线段可以用下面的坐标串表示:(2,8),(3,7),(3,6),(3,5),(4,4),(5,3),(6,2),(7,3),(8,4),(7,5)。但可以发现,这种表示不是最简的,其实只需要存储6个蓝色的关键点即可,它们是线段的起点、拐点、终点,而剩下4个点是冗余的。现在,请根据输入的包含有冗余数据的多线段坐标列表,输出其最简化的结果。原创 2024-05-19 08:48:00 · 253 阅读 · 0 评论 -
2024OD机试卷-机场航班调度程序 (java\python\c++)
XX市机场停放了多架飞机,每架飞机都有自己的航班号CA3385,CZ6678,SC6508等,航班号的前2个大写字母(或数字)代表航空公司的缩写,后面4个数字代表航班信息。但是XX市机场只有一条起飞跑道,调度人员需要安排目前停留在机场的航班有序起飞。为保障航班的有序起飞,调度员首先按照航空公司的缩写(航班号前2个字母)对所有航班进行排序,同一航空公司的航班再按照航班号的后4个数字进行排序,最终获得安排好的航班的起飞顺序。请编写一段代码根据输入的航班号信息帮助调度员输出航班的起飞顺序。说明:航空公原创 2024-05-19 08:41:30 · 59 阅读 · 0 评论 -
2024OD机试卷-数的分解 (java\python\c++)
提取字符串中的最长合法简单 数学表达式 ,字符串长度最长的,并计算表达式的值。如果没有,则返回 0 。简单数学表达式只能包含以下内容:0-9数字,符号+-*说明:1. 所有数字,计算结果都不超过long2. 如果有多个长度一样的,请返回第一个表达式的结果3. 数学表达式,必须是最长的,合法的4. 操作符不能连续出现,如 +--+1 是不合法的原创 2024-05-18 23:12:49 · 52 阅读 · 0 评论 -
2024OD机试卷-寻找身高相近的小朋友 (java\python\c++)
小明今年升学到了小学1年级来到新班级后,发现其他 小朋友 身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序,请帮他实现排序。原创 2024-05-18 22:11:01 · 66 阅读 · 0 评论 -
2024OD机试卷-考勤信息 (java\python\c++)
公司用一个 字符串 来表示员工的出勤信息absent:缺勤late:迟到leaveearly:早退present:正常上班现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:缺勤不超过一次;没有连续的迟到/早退;任意连续7次考勤,缺勤/迟到/早退不超过3次。原创 2024-05-18 21:36:21 · 49 阅读 · 0 评论 -
2024OD机试卷-数组去重和排序 (java\python\c++)
给定一个乱序的数组, 删除所有 的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。原创 2024-05-18 21:07:42 · 54 阅读 · 0 评论 -
2024OD机试卷-求幸存数之和 (java\python\c++)
给一个正整数数列 nums,一个跳数 jump ,及幸存数量 left。运算过程为:从索引0的位置开始向后跳,中间跳过 J 个数字,命中索引为 J+1 的数字,该数被敲出,并从该点起跳,以此类推,直到幸存 left 个数为止,然后返回幸存数之和。约束:1. 0是第一个起跳点2. 起跳点和命中点之间间隔 jump 个数字,已被敲出的数字不计入在内。3. 跳到末尾时无缝从头开始(循环查找),并可以多次循环。4. 若起始时 left > len(nums) 则无需跳数处理过程。原创 2024-05-18 20:58:54 · 71 阅读 · 0 评论 -
2024OD机试卷-最多购买宝石数目(java\python\c++)
橱窗里有一排宝石, 不同的 宝石对应不同的价格,宝石的价格标记为 gems[i]0 ≤ i < nn = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;例如客户最大购买宝石个数为m,购买的宝石编号必须为:gems[i],gems[i+1],...,gems[i+m-1]0 ≤ i < nm ≤ n假设你当前拥有总面值为 value 的钱,请问最多能购买到多少个宝石,如无法购买宝石,则返回0。原创 2024-05-18 20:53:40 · 46 阅读 · 0 评论 -
2024OD机试卷-围棋的气 (java\python\c++)
围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对弈双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。“气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:1. 在棋盘的边缘上的棋子最多有 3 口气(黑1),在棋盘角点的棋子最多有2口气(黑2),其他情况最多有4口气(白1)2. 所有同色棋子的气之和叫做该色棋子的气,需要注意的是,同色棋子重合的气点,对于该颜色棋子来说,只能计算一次气,比如下图中原创 2024-05-18 20:47:30 · 119 阅读 · 0 评论 -
2024OD机试卷-密码输入检测 (java\python\c++)
给定用户密码 输入流 input,输入流中字符 '原创 2024-05-18 20:40:41 · 53 阅读 · 0 评论 -
2024OD机试卷-用连续自然数之和来表达整数 (java\python\c++)
一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的 表达式 ,且打印出每种表达式原创 2024-05-17 20:41:18 · 62 阅读 · 0 评论 -
2024OD机试卷-最长的指定瑕疵度的元音子串 (java\python\c++)
开头和结尾都是 元音字母 (aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。比如:1. “a” 、 “aa”是元音字符串,其瑕疵度都为02. “aiur”不是元音字符串(结尾不是元音字符)3. “abira”是元音字符串,其瑕疵度为2给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。子串:字符串中任意个连续的字符组成的 子序列 称为该字符串的子串。原创 2024-05-17 20:35:40 · 62 阅读 · 0 评论 -
2024OD机试卷-火星文计算2 (java\python\c++)
已知火星人使用的 运算符 为#、$,其与地球人的等价公式如下:x#y = 4*x+3*y+2x$y = 2*x+y+31. 其中 x、y 是无符号整数2. 地球人公式按C语言规则计算3. 火星人公式中,#的优先级高于$,相同的运算符,按从左到右的顺序计算现有一段火星人的字符串报文,请你来翻译并计算结果。原创 2024-05-17 20:24:51 · 110 阅读 · 0 评论