华为OD机考
文章平均质量分 51
华为OD机考引路人
优惠券已抵扣
余额抵扣
还需支付
¥59.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
清水乐园
这个作者很懒,什么都没留下…
展开
-
华为OD机试 - 最大数字
题目描述给定一个由纯数字组成以字符串表示的数值,现要求字符串中的每个数字最多只能出现2次,超过的需要进行删除;删除某个重复的数字后,其它数字相对位置保持不变。如”34533″,数字3重复超过2次,需要删除其中一个3,删除第一个3后获得最大数值”4533″请返回经过删除操作后的最大的数值,以字符串表示。输入描述第一行为一个纯数字组成的字符串,长度范围:[1,100000]输出描述输出经过删除操作后的最大的数值。原创 2023-05-30 07:25:53 · 212 阅读 · 1 评论 -
华为OD机试 - 计算最接近的数(Java)
给定一个数组X和正整数K,请找出使表达式:结果最接近于数组中位数的下标 i ,如果有多个 i 满足条件,请返回最大的 i.其中,数组中位数:长度为N的数组,按照元素的值大小升序排列后,下标为 N/2 元素的值无无。原创 2023-09-03 12:16:17 · 246 阅读 · 0 评论 -
华为OD机试 - 分割数组的最大差值(Java)
给定一个由若干整数组成的数组nums ,可以在数组内的任意位置进行分割,将该数组分割成两个非空子数组(即左数组和右数组),分别对子数组求和得到两个值,计算这两个值的差值,请输出所有分割方案中,差值最大的值。左数组 = [1,-2,3,4,-9] 且 右数组 = [7],和的差值 = | -3 - 7| = 10最大的差值为10。左数组 = [1,-2,3,4] 且右数组=[-9,7],和的差值 = | 6 - (-2) | = 8,定义一个rightSum,用于统计右数组的和,初始为sum(nums)原创 2023-08-27 22:53:21 · 214 阅读 · 0 评论 -
华为OD机试 - 增强的strstr(Java)
C 语言有一个库函数: char *strstr(const char *haystack, const char *needle) ,实现在字符串 haystack 中查找第一次出现字符串 needle 的位置,如果未找到则返回 null。现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置。与strstr函数不同,返回的是源字符串中,匹配子字符串相对于源字符串地址的偏移(从0开始算),如果没有匹配返回-1。原创 2023-08-27 22:43:12 · 219 阅读 · 0 评论 -
华为OD机试 - 不开心的小朋友(Java)
游乐场里增加了一批摇摇车,非常受小朋友欢迎,但是每辆摇摇车同时只能有一个小朋友使用,如果没有空余的摇摇车,需要排队等候,或者直接离开,最后没有玩上的小朋友会非常不开心。第二行,1号来 2号来(排队) 2号走(不开心离开) 3号来(排队) 1号走 3号走(1号走后摇摇车已有空闲,所以玩后离开)请根据今天小朋友的来去情况,统计不开心的小朋友数量。第二行: 小朋友来去情况。返回不开心的小朋友数量。第一行: 摇摇车数量。原创 2023-08-27 22:19:29 · 104 阅读 · 0 评论 -
华为OD机试 - 计算误码率(Java)
误码率是最常用的数据通信传输质量指标。它可以理解为“在多少位数据中出现一位差错”。移动通信网络中的误码率主要是指比特误码率,其计算公式如下: 比特误码率=错误比特数/传输总比特数,为了简单,我们使用字符串来标识通信的信息,一个字符错误了,就认为出现了一个误码输入一个标准的字符串,和一个传输后的字符串,计算误码率字符串会被压缩,例:“2A3B4D5X1Z”表示"AABBBDDDDXXXXXZ"用例会保证两个输入字符串解压后长度一致,解压前的长度不一定一致。原创 2023-08-27 20:05:39 · 81 阅读 · 0 评论 -
华为OD机试 - 返回矩阵中非1的元素个数(Java)
将数组所有成员随机初始化为0或2,再将矩阵的[0, 0]元素修改成1,在经过足够长的时间后求矩阵中有多少个元素是0或2(即0和2数量之和)。其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。存在一个m*n的二维数组,其成员取值范围为0,1,2。输入数字前两个数字是矩阵大小。后面的数字是矩阵内容。输入的前两个数字是矩阵大小。后面是数字矩阵内容。所以矩阵中非1的元素个数为9。而值为2的元素,免疫同化。返回矩阵中非1的元素个数。原创 2023-08-26 11:48:54 · 48 阅读 · 0 评论 -
华为OD机试 - 跳房子II(Java)
跳房子,也叫跳飞机,是一种世界性的儿童游戏。游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子被选完,房子最多的人获胜。跳房子的过程中,如果有踩线等违规行为,会结束当前回合,甚至可能倒退几步。假设房子的总格数是count,小红每回合可能连续跳的步数都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红三个回合跳到最后一格?如果有,请输出索引和最小的步数组合(数据保证索引和最小的步数组合是唯一的)。原创 2023-08-26 11:31:52 · 90 阅读 · 0 评论 -
华为OD机试 - 生日礼物(Java)
小牛的孩子生日快要到了,他打算给孩子买蛋糕和小礼物,蛋糕和小礼物各买一个,他的预算不超过x元。蛋糕cake和小礼物gift都有多种价位的可供选择。请返回小牛共有多少种购买方案。第一行表示cake的单价,以逗号分隔第二行表示gift的单价,以逗号分隔第三行表示x预算输出数字表示购买方案的总数。原创 2023-08-26 08:27:27 · 75 阅读 · 0 评论 -
华为OD机试 - 周末爬山(Java)
周末小明准备去爬山锻炼,0代表平地,山的高度使用1到9来表示,小明每次爬山或下山高度只能相差k及k以内,每次只能上下左右一个方向上移动一格,小明从左上角(0,0)位置出发第一行输入m n k(空格分隔)然后接下来输入山地图,一共m行n列,均以空格分隔。请问小明能爬到的最高峰多高,到该最高峰的最短步数,输出以空格分隔。同高度的山峰输出较短步数。如果没有可以爬的山峰,则高度和步数都返回0。原创 2023-08-26 08:00:47 · 57 阅读 · 0 评论 -
华为OD机试 - 最佳的出牌方法(Java)
求出一副牌最高的得分数按顺序排好的一副牌,最少1张,最多15张。1-9输入为数字1-9,10输入为数字0,JQK输入为大写字母JQK.无需考虑输入非法的情况,例如输入字符不在[0-9JQK]范围或某一张牌超过4张最高的得分数。原创 2023-08-25 21:50:53 · 58 阅读 · 0 评论 -
华为OD机试 - 数字序列比大小(Java)
A,B两个人玩一个数字的游戏,在游戏前,两个人会拿到相同长度的两个数字序列,两个数字序列不相同的,且其中的数字是随机的。A,B各自从数字序列中挑选出一个数字进行大小比较,赢的人得1分,输的人扣1分,相等则各自的分数不变。用过的数字需要丢弃。求A可能赢B的最大分数。输入数据的第1个数字表示数字序列的长度N,后面紧跟着两个长度为N的数字序列。A可能赢B的最大分数。原创 2023-08-25 21:39:03 · 139 阅读 · 0 评论 -
华为OD机试 - 高效的任务规划(Java)
一个设备由N种类型元器件组成(每种类型元器件只需要一个,类型type编号从0~N-1),每个元器件均有可靠性属性reliability,可靠性越高的器件其价格price越贵。而设备的可靠性由组成设备的所有器件中可靠性最低的器件决定。给定预算S,购买N种元器件( 每种类型元器件都需要购买一个),在不超过预算的情况下,请给出能够组成的设备的最大可靠性。S N // S总的预算,N元器件的种类total // 元器件的总数,每种型号的元器件可以有多种;此后有total行具体器件的数据。原创 2023-08-25 21:14:53 · 62 阅读 · 0 评论 -
华为OD机试 - 战场索敌(Java & JS & Python)
有一个大小是N*M的战场地图,被墙壁 '#' 分隔成大小不同的区域,上下左右四个方向相邻的空地 '.' 属于同一个区域,只有空地上可能存在敌人'E”,请求出地图上总共有多少区域里的敌人数小于K。深度优先搜索(基于栈结构,后进先出)广度优先搜索(基于队列结构,先进先出)广度优先搜索(基于队列结构,先进先出)之后为一个NxM大小的字符数组。第一行输入为N,M,K;敌人数小于K的区域数量。原创 2023-08-25 21:00:26 · 68 阅读 · 0 评论 -
华为OD机试 - 矩阵元素的边界值(Java)
给定一个N*M矩阵,请先找出M个该矩阵中每列元素的最大值,然后输出这M个值中的最小值无无。原创 2023-08-19 15:41:59 · 156 阅读 · 0 评论 -
华为OD机试 - 求最小步数(Java)
求从坐标零点到坐标点n的最小步数,一次只能沿横坐标轴向左或向右移动 2 或 3。注意:途径的坐标点可以为负数坐标点n输出从坐标零点移动到坐标点n的最小步数。原创 2023-08-19 15:37:43 · 86 阅读 · 0 评论 -
华为OD机试 - 寻找相似单词(Java)
相似单词说明:给定一个单词X,如果通过任意交换单词中字母的位置得到不同的单词Y,那么定义Y是X的相似单词,如abc、bca即为相似单词(大小写是不同的字母,如a和A算两个不同字母)。最后一行是指定的待检测单词(用于检测上面给定的单词中哪些是与该指定单词是相似单词,该单词可以不是上面给定的单词)原创 2023-08-19 14:08:20 · 40 阅读 · 0 评论 -
华为OD机试 - 比赛(Java)
2号选手得分36分排第1,1号选手36分排第2,5号选手30分(2号10分值有3个,1号10分值只有1个,所以2号排第一)一个有N个选手参加比赛,选手编号为1~N(3原创 2023-08-19 12:58:28 · 46 阅读 · 0 评论 -
华为OD机试 - 全量和已占用字符集(Java)
给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。要求输出剩余可用字符集。原创 2023-08-19 12:09:25 · 39 阅读 · 0 评论 -
华为OD机试 - 英文输入法(Java)
从用户已输入英文语句”I love you”中提炼出“I”、“love”、“you”三个单词,接下来用户输入“He”,依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,从已输入信息中无法联想到任何符合要求的单词,因此输出用户输入的单词前缀。输出符合要求的单词序列或单词前缀,存在多个时,单词之间以单个空格分割。输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号。缩略形式如”don’t”,判定为两个单词,”don”和”t”原创 2023-08-19 12:00:40 · 66 阅读 · 0 评论 -
华为OD机试 - 单词接龙(Java)
当存在多个首字母相同的单词时,取长度最长的单词,如果长度也相等,则取字典序最小的单词;已经参与接龙的单词不能重复使用。现给定一组全部由小写字母组成单词数组,并指定其中的一个单词作为起始单词,进行单词接龙,请输出最长的单词串,单词串是单词拼接而成,中间没有空格。可用于接龙的单词首字母必须要前一个单词的尾字母相同;原创 2023-08-19 11:53:36 · 49 阅读 · 0 评论 -
华为OD机试 - 查字典(Java)
输入一个单词前缀和一个字典,输出包含该前缀的单词。所有包含该前缀的单词,多个单词换行输出。单词前缀+字典长度+字典。字典是一个有序单词数组。原创 2023-08-19 10:39:05 · 43 阅读 · 0 评论 -
华为OD机试 - 支持优先级的队列(Java)
收集完后,我们可以取出字典的key列进行降序排序(高优先级优先),然后遍历降序后的key列,逐个打印字典对应key下的value内容。定义一个字典,用于收集相同优先级的数据,即字典的key是优先级,value是一个维护了插入顺序的Set集合。输入样例中,向队列写入了4个数据,每个数据由数据内容和优先级组成。输入样例中,向队列写入了4个数据,每个数据由数据内容和优先级组成。如果两个输入数据和优先级都相同,则后一个数据不入队列被丢弃。对于相同优先级的,且不重复的任务,维持插入顺序。输入和输出内容都不含空格。原创 2023-08-19 09:49:02 · 61 阅读 · 0 评论 -
华为OD机试 - 拔河比赛(Java)
公司最近准备进行拔河比赛,需要在全部员工中进行挑选。请实现一个选拔队员的小程序。输入为一个数组,记录了部门人员的身高、体重信息,如[身高,体重]的方式放置;部门全部成员数量为大于10的一个数组。要求输出一个size为10的二维数组。输入为N行员工信息,表示部门报名参加选拔的候选人信息,每行有两个数字,使用空格分隔,表示员工的身高、体重信息如181 70182 70表示两位候选员工,第一人身高181厘米,体重70公斤;第二人身高182厘米,体重70公斤。原创 2023-08-19 09:42:39 · 84 阅读 · 0 评论 -
华为OD机试 - 寻找符合要求的最长子串(Java)
第二行为:字符串s,每个字符范围[0-9a-zA-Z],长度范围[1, 10000]第一行为:要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]一个整数,满足条件的最长子串的长度;请你找出满足该条件的最长子串的长度。如果不存在满足条件的子串,则返回0。原创 2023-08-17 23:58:42 · 61 阅读 · 0 评论 -
华为OD机试 - 猜数字(Java)
其中X表示位置正确的数的个数(数字正确且位置正确),而Y表示数字正确而位置不对的数的个数。每猜一个数,出数者就要根据这个数字给出提示,提示以XAYB形式呈现,直到猜中位置。当前已知N组猜谜者猜的数字与提示,如果答案确定,请输出答案,不确定则输出NA。例如,当谜底为8123,而猜谜者猜1052时,出题者必须提示0A2B。例如,当谜底为5637,而猜谜者才4931时,出题者必须提示1A0B。接下来N行,每一行包含一个猜测的数字与提示结果。输出最后的答案,答案不确定则输出NA。原创 2023-08-17 23:53:56 · 54 阅读 · 0 评论 -
华为OD机试 - 称砝码(Java)
现有n种砝码,重量互不相等,分别为 m1,m2,m3…mn;每种砝码对应的数量为 x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。对于每组测试数据:第一行:n --- 砝码的种数(范围[1,10])第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])第三行:x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])利用给定的砝码可以称出的不同的重量数。原创 2023-08-17 23:51:25 · 44 阅读 · 0 评论 -
华为OD机试 - 插队(Java)
某银行将客户分为了若干个优先级, 1 级最高, 5 级最低,当你需要在银行办理业务时,优先级高的人随时可以插队到优先级低的人的前面。当字符为 a 时,后面会有两个的正整数 num 和 x ,表示到来的客户编号为 num ,优先级为 x;输出包含若干行,对于每个 p , 输出一行,仅包含一个正整数 num , 表示办理业务的客户编号。现在给出一个人员到来和银行办理业务的时间序列,请你在每次银行办理业务时输出客户的编号。(1 ≤ n ≤ 500)当字符为 p 时,表示当前优先级最高的客户去办理业务。原创 2023-08-17 23:48:48 · 30 阅读 · 0 评论 -
华为OD机试 - 回文字符串(Java)
给你一个仅包含大小写字母的字符串,请用这些字母构造出一个最长的回文串,若有多个最长的,返回其中字典序最小的回文串。字符串中的每个位置的字母最多备用一次,也可以不用。原创 2023-08-16 21:26:11 · 43 阅读 · 0 评论 -
华为OD机试 - 最快到达医院的方法(Java)
新型冠状病毒疫情的肆虐,使得家在武汉的大壮不得不思考自己家和附近定点医院的具体情况。分别是到达A医院的距离,到达B医院的距离,计程车平均速度,上车等待时间,步行速度。经过一番调查,大壮明白了距离自己家最近的定点医院有两家。由于武汉封城,公交停运,私家车不能上路,交通十分不便。一行,计程车(Taxi)、步行(Walk)、相等(Same)给出X,Y,M,L,N的数据,请问大壮到达哪家医院最快?原创 2023-08-16 21:23:13 · 49 阅读 · 0 评论 -
华为OD机试 - 服务中心选址(Java)
如果第 i 个区域的右侧终点right满足 right < location,则第 i 个区域到服务中心的距离为 location - right;如果第 i 个区域的左侧起点left 满足 left > location,则第 i 个区域到服务中心的距离为left - location;如果第 i 个区域的两侧left,right满足left原创 2023-08-16 21:20:47 · 74 阅读 · 0 评论 -
华为OD机试 - 最多几个直角三角形(Java)
每行第一个正整数N,表示线段个数(3原创 2023-08-16 21:16:56 · 42 阅读 · 0 评论 -
华为OD机试 - 统一限载货物数最小值(Java)
火车站附近的货物中转站负责将到站货物运往仓库,小明在中转站负责调度2K辆中转车(K辆干货中转车,K辆湿货中转车)。货物由不同供货商从各地发来,各地的货物是依次进站,然后小明按照卸货顺序依次装货到中转车,一个供货商的货只能装到一辆车上,不能拆装,但是一辆车可以装多家供货商的货;中转车的限载货物量由小明统一指定,在完成货物中转的前提下,请问中转车的统一限载货物数最小值为多少。运行结果输出一个整数,表示中转车统一限载货物数。原创 2023-08-16 21:14:55 · 66 阅读 · 0 评论 -
华为OD机试 - 最佳对手(Java)
游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。给定n个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距d内,则可以匹配。匹配后,各组对战的实力差值的总和。若没有队伍可以匹配,则输出-1。要求在匹配队伍最多的情况下匹配出的各组实力差距的总和最小。允许的最大实力差距d。47与59配对,实力差距12,第二行,n个队伍的实力值空格分割。81与81配对,实力差距0。最多能匹配成功4支队伍。总实力差距12+0=12。原创 2023-08-16 21:11:49 · 68 阅读 · 0 评论 -
华为OD机试 - 最优资源分配(Java)
某块业务芯片最小容量单位为1.25G,总容量为M*1.25G,对该芯片资源编号为1,2,...,M。该芯片支持3种不同的配置,分别为A、B、C。某块板卡上集成了N块上述芯片,对芯片编号为1,2,...,N,各个芯片之间彼此独立,不能跨芯片占用资源。给定板卡上芯片数量N、每块芯片容量M、用户按次序配置后,请输出芯片资源占用情况,保证消耗的芯片数量最少。资源分配规则:按照芯片编号从小到大分配所需资源,芯片上资源如果被占用标记为1,没有被占用标记为0.原创 2023-08-16 21:09:17 · 49 阅读 · 0 评论 -
华为OD机试 - 日志限流(Java )
如果一天产生的日志总条数大于total,则需要对当天内每单位时间产生的日志条数进行限流后保存,请计算每单位时间最大可保存日志条数limit,以确保当天保存的总日志条数不超过total。某软件系统会在运行过程中持续产生日志,系统每天运行N单位时间,运行期间每单位时间产生的日志条数保行在数组records中。第二行为表示这一天每单位时间产生的日志数量的数组records[],0原创 2023-08-16 21:05:44 · 60 阅读 · 0 评论 -
华为校招机试 - 工单调度策略(Java)
当小区通信设备上报警时,系统会自动生成待处理的工单,华为工单调度系统需要根据不同的策略,调度外线工程师(FME)上站修复工单对应的问题。根据与运营商签订的合同,不同严重程度的工单被处理并修复的时长要求不同,这个要求被修复的时长我们称之为SLA时间。假设华为和运营商A签订了运维合同,部署了一套调度系统,只有1个外线工程师(FME),每个工单根据问题严重程度会给一个评分,在SLA时间内完成修复的工单,华为获得工单评分对应的积分,超过SLA完成的工单不获得积分,但必须完成该工单。运营商最终会根据积分进行付款。原创 2023-08-16 21:02:39 · 45 阅读 · 0 评论 -
华为OD机试 - 几何平均值最大子数组(Java)
从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大子数组,并输出其位置和大小。(K个数的几何平均值为K个数的乘积的K次方根)若有多个子数组的几何平均值均为最大值,则输出长度最小的子数组。若有多个长度相同的子数组的几何平均值均为最大值,则输出最前面的子数组。第一行输入为N、L之后N行表示numbers中的N个数,每个一行(10^-9 ≤ numbers[i] ≤ 10^9)输出子数组的位置(从0开始计数)和大小,中间用一个空格隔开。原创 2023-08-15 20:15:10 · 57 阅读 · 0 评论 -
华为OD机试 - 九宫格(Java)
B9),从排列的第1个数字开始,遇到Ai原创 2023-08-15 20:12:44 · 60 阅读 · 0 评论 -
华为OD机试 - 硬件产品销售方案(Java)
某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,AI服务器,智能边缘多种硬件产品,每种产品包含若干个型号。例如当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不存在价格相同的产品型号)。输入包含采购金额amount和产品价格列表price。现某合作厂商要采购金额为amount元的硬件产品搭建自己的AI基座。请为合作厂商列出所有可能的产品组合。原创 2023-08-15 20:09:21 · 38 阅读 · 0 评论