
华为OD机试
文章平均质量分 62
华为OD机试算法题分析和练习。题目来源于网络,仅用于学习,不可抄袭和他用。
小码哥Lvan
同济大学软件工程在读研究生,研究领域为WEB3D,希望在优快云上能找到人一起学习,相互勉励
展开
-
华为OD机试之报文重排序【Java源码】
对报文进行重传和重排序是常用的可靠性机制,重传缓中区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。原创 2023-08-22 11:09:38 · 950 阅读 · 4 评论 -
华为OD机试之报文重排序(Java源码)
对报文进行重传和重排序是常用的可靠性机制,重传缓中区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要恢复出原始报文。原创 2023-08-05 12:44:48 · 496 阅读 · 20 评论 -
华为OD机试之报文回路(Java源码)
IGMP 协议中响应报文和查询报文,是维系组播通路的两个重要报文,在一条已经建立的组播通路中两个相邻的 HOST 和 ROUTER,ROUTER 会给 HOST 发送查询报文,HOST 收到查询报文后给 ROUTER 回复一个响应报文,以维持相之间的关系,一旦这关系断裂,那么这条组播通路就异常”了。现通过某种手段,抓取到了 HOST 和 ROUTER 两者通讯的所有响应报文和查询报文,请分析该组播通路是否“正常”原创 2023-08-05 12:37:56 · 408 阅读 · 3 评论 -
华为OD机试之拔河比赛(Java源码)
题目描述公司最近准备进行拔河比赛,需要在全部员工中进行挑选。选拔的规则如下:按照身高优先、体重次优先的方式准备比赛阵容;规定参赛的队伍派出10名选手。请实现一个选拔队员的小程序。 输入为一个数组,记录了部门人员的身高、体重信息,如[身高,体重]的方式放置; 部门全部成员数量为大于10的一个数组。 要求输出一个size为10的二维数组。输入描述输入为N行员工信息,表示部门报名参加选拔的候选人信息,每行有两个数字,使用空格分隔,表示员工的身高、体重信息如181 70182 70表示两位候原创 2023-06-21 10:13:39 · 727 阅读 · 1 评论 -
华为OD机试之按单词下标区间翻转文章内容(Java源码)
题目描述给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。请翻转片段中指定区间的单词顺序并返回翻转后的内容。例如给定的英文文章片段为"I am a developer",翻转区间为[0,3],则输出“developer a am I”。String reverseWords(String s, int start, int end)输入描述使用换行隔开三个参数第一个参数为英文文章内容即英文字符串第二个参数为待翻转内容起始单词下标第三个参数为待翻转内容最后一个单词原创 2023-06-21 10:00:25 · 410 阅读 · 0 评论 -
华为OD机试之 阿里巴巴找黄金宝箱(V)(Java源码)
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面贴有一个数字。阿里巴巴念出一个咒语数字k(k原创 2023-06-21 09:47:33 · 502 阅读 · 0 评论 -
华为OD机试之阿里巴巴找黄金宝箱(IV)(Java源码)
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0-N的箱子,每个箱子上面有一个数字,箱子排列成一个环,编号最大的箱子的下一个是编号为0的箱子。请输出每个箱了贴的数字之后的第一个比它大的数,如果不存在则输出-1。原创 2023-06-21 09:35:48 · 503 阅读 · 0 评论 -
华为OD机试之阿里巴巴找黄金(III)(Java源码)
一贫如洗的椎夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面贴有一个数字。阿里巴巴念出一个咒语数字,查看宝箱是否存在两个不同箱子,这两个箱子上贴的数字相同,同时这两个箱子的编号之差的绝对值小于等于咒语数字,如果存在这样的一对宝箱,请返回最先找到的那对宝箱左边箱子的编号,如果不存在则返回-1。原创 2023-06-21 09:30:43 · 776 阅读 · 0 评论 -
华为OD机试之阿里巴巴找黄金宝箱(II)(Java源码)
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~n 的箱子,每个箱子上面贴有箱子中藏有金币的数量。从金币数量中选出一个数字集合,并销毁贴有这些数字的每个箱子,如果能销毁一半及以上的箱子,则返回这个数字集合的最小大小。输入描述一个数字字串,数字之间使用逗号分陌,例如: 6,6,6,6,3,3,3,1,1,5字串中数字的个数为偶数,并且个数>=1,=1,原创 2023-06-20 09:16:10 · 510 阅读 · 0 评论 -
华为OD机试之阿里巴巴找黄金宝箱(I)
一贫如洗的樵夫阿里巴巴在去砍柴的路上,无意中发现了强盗集团的藏宝地,藏宝地有编号从0~N的箱子,每个箱子上面贴有一个数字,箱子中可能有一个黄金宝箱。黄金宝箱满足排在它之前的所有箱子数字和等于排在它之后的所有箱子数字之和;第一个箱子左边部分的数字和定义为0;最后一个箱子右边部分的数字和定义为0.请帮阿里巴巴找到黄金宝箱,输出第一个满足条件的黄金宝箱编号,如果不存在黄金宝箱,请返回-1。原创 2023-06-19 11:32:28 · 503 阅读 · 0 评论 -
华为OD机试之MELON的难题(Java源码)
MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石重量一致,请你设计一个程序,帮MELON确认是否能将雨花石平均分配。原创 2023-06-19 09:57:07 · 1507 阅读 · 11 评论 -
华为OD机试之Boss分销提成计算(boss的收入)(Java源码)
一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销.规定,每个月,下级分销需要将自己的总收入 (自己的+下级上交的) 每满100元上交15元给自己的上级.现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。比如:收入100元上交15元;收入199元(99元不够100)上交15元;收入200元,上交30元。原创 2023-06-17 14:59:23 · 1837 阅读 · 1 评论 -
华为OD机试之乱序整数序列两数之和绝对值最小(Java源码)
给定一个随机的整数(可能存在正整数和负整数)数组 nums,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值,并返回这个两个数(按从小到大返回)以及绝对值。每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。原创 2023-06-17 10:53:03 · 429 阅读 · 0 评论 -
华为OD机试之整数对最小和
给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。注意:两对元素如果对应于array1、array2中的两个下标均相同,则视为同一对元素。原创 2023-06-17 10:42:58 · 1099 阅读 · 1 评论 -
华为OD机试之AI面板识别
AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),请输出先行后列排序的指示灯的编号,排序规则:每次在尚未排序的灯中挑选最高的灯作为的基准灯,找出和基准灯属于同一行所有的灯进行排序。两个灯高低偏差不超过灯半径算同一行(即两个灯坐标的差 ≤ 灯高度的一半)。原创 2023-06-17 10:33:04 · 2111 阅读 · 5 评论 -
华为OD机试之 ABR 车路协同场景(Java源码)
数轴×有两个点的序列 A={A1, A2, …, Am}和 B={B1, B2, ..., Bn}, Ai 和 Bj 均为正整数, A、 B 已经从小到大排好序, A、 B 均肯定不为空,给定一个距离 R(正整数),列出同时满足如下条件的所有(Ai, Bj)数对条件:Ai原创 2023-06-16 15:33:02 · 371 阅读 · 1 评论 -
华为OD机试之检查是否存在满足条件的数字组合(Java源码)
给定一个正整数数组,检查数组中是否存在满足规则的数字组合规则:A = B + 2C输入描述第一行输出数组的元素个数。接下来一行输出所有数组元素,用空格隔开。输出描述如果存在满足要求的数,在同一行里依次输出规则里A/B/C的取值,用空格隔开。如果不存在,输出0。备注数组长度在3-100之间。数组成员为0-65535,数组成员可以重复,但每个成员只能在结果算式中使用一次。如:数组成员为[0, 0, 1, 5],0出现2次是允许的,但结果0 = 0 + 2 * 0是不允许的,原创 2023-06-16 14:56:11 · 641 阅读 · 1 评论 -
华为OD机试之数组拼接(Java源码)
现在有多组整数数组,需要将它们合并成一个新的数组。合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下一行。原创 2023-06-15 17:30:30 · 852 阅读 · 1 评论 -
华为OD机试之数组去重和排序(Java源码)
给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。原创 2023-06-15 17:21:41 · 567 阅读 · 0 评论 -
华为OD机试之最长连续子序列(Java源码)
有N个正整数组成的一个序列。给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度,如果没有满足要求的序列,返回-1。原创 2023-06-15 17:11:58 · 478 阅读 · 10 评论 -
华为OD机试之最长连续子序列(Java源码)
有N个正整数组成的一个序列。给定整数sum,求长度最长的连续子序列,使他们的和等于sum,返回此子序列的长度,如果没有满足要求的序列,返回-1。原创 2023-06-15 10:51:08 · 489 阅读 · 0 评论 -
华为OD机试之最大N个数与最小N个数的和
给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。说明:数组中数字范围[0, 1000]最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1输入非法返回-1原创 2023-06-14 10:45:53 · 1287 阅读 · 9 评论 -
华为OD机试之查找众数及中位数(Java源码)
众数是指一组数据中出现次数量多的那个数,众数可以是多个。中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。原创 2023-06-13 11:17:12 · 609 阅读 · 0 评论 -
华为OD机试之用户调度问题(Java源码)
在通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和性能。假设当前有n个待串行调度用户,每个用户可以使用A/B/C三种不同的调度策略,不同的策略会消耗不同的系统资源。请你根据如下规则进行用户调度,并返回总的消耗资源数。规则:1. 相邻的用户不能使用相同的调度策略,例如,第1个用户使用了A策略,则第2个用户只能使用B或者C策略。2. 对单个用户而言,不同的调度策略对系统资源的消耗可以归一化后抽象为数值。例如,某用户分别使用A/B/C策略的系统消耗分别为15/原创 2023-06-13 10:35:33 · 718 阅读 · 10 评论 -
华为OD机试之执行时长(Java源码)
为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。原创 2023-06-12 11:40:15 · 412 阅读 · 1 评论 -
华为OD机试之找终点
给定一个正整数数组,设为nums,最大为100个成员,求从第一个成员开始,正好走到数组最后一个成员,所使用的最少步骤数。要求:第一步必须从第一元素开始,且1原创 2023-06-07 13:51:30 · 916 阅读 · 9 评论 -
华为OD机试之在字符串中找出连续最长的数字串(含“+-”号)(Java源码)
请在一个字符串中找出连续最长的数字串,并返回这个数字串。如果存在长度相同的连续数字串,返回最后一个。如果没有符合条件的字符串,返回空字符串””。原创 2023-06-06 20:29:55 · 657 阅读 · 4 评论 -
华为OD机试之查找接口成功率最优时间段(Java源码)
服务之间交换的接口成功率作为服务调用关键质量特性,某个时间段内的接口失败率使用一个数组表示,数组中每个元素都是单位时间内失败率数值,数组中的数值为0~100的整数,给定一个数值(minAverageLost)表示某个时间段内平均失败率容忍值,即平均失败率小于等于minAverageLost,找出数组中最长时间段,如果未找到则直接返回NULL。原创 2023-06-06 11:37:24 · 1237 阅读 · 11 评论 -
华为OD机试(41-60)老题库解析&Java源码系列连载ing
华为OD机试系列算法题,题序为61-80,包含题目描述,输入描述,输出描述,用例,解析,代码和运行截图。原创 2023-06-01 21:03:20 · 1375 阅读 · 7 评论 -
华为OD机试之数字字符串组合倒序(Java源码)
对数字,字符,数字串,字符串,以及数字与字符串组合进行倒序排列。字符范围:由 a 到 z, A 到 Z,数字范围:由 0 到 9原创 2023-06-01 21:00:02 · 197 阅读 · 0 评论 -
华为OD机试之秘钥格式化(Java源码)
给定一个非空字符串 S,其被 N 个’-‘分隔成 N+1 的子串,给定正整数 K,要求除第一个子串外,其余的串每 K 个用’-‘分隔,并将小写字母转换为大写。原创 2023-06-01 20:58:54 · 166 阅读 · 0 评论 -
华为OD机试之全量和已占用字符集(Java源码)
给定两个字符集合,一个是全量字符集,一个是已占用字符集,已占用字符集中的字符不能再使用。原创 2023-06-01 20:58:09 · 595 阅读 · 0 评论 -
华为OD机试之找出经过特定点的路径长度(Java源码)
可以使用动态规划DP算法进行求解。原创 2023-06-01 20:57:27 · 784 阅读 · 0 评论 -
华为OD机试之字符串变换最小字符串(Java源码)
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。原创 2023-06-01 20:56:12 · 426 阅读 · 0 评论 -
华为OD机试之数列描述(Java源码)
有一个数列a[N] (N=60),从a[0]开始,每一项都是一个数字。数列中a[n+1]都是a[n]的描述。其中a[0]=1。规则如下:a[0]:1a[1]:11(含义:其前一项a[0]=1是1个1,即“11”。表示a[0]从左到右,连续出现了1次“1”)a[2]:21(含义:其前一项a[1]=11,从左到右:是由两个1组成,即“21”。表示a[1]从左到右,连续出现了两次“1”)a[3]:1211(含义:其前一项a[2]=21,从左到右:是由一个2和一个1组成,即“1211”。表示a[2]从左到原创 2023-05-31 14:32:45 · 1180 阅读 · 1 评论 -
华为OD机试之计算最大乘积(Java源码)
给定一个元素类型为小写字符串的数组,请计算两个没有相同字符的元素长度乘积的最大值,如果没有符合条件的两个元素,返回0。原创 2023-05-31 14:17:20 · 226 阅读 · 0 评论 -
华为OD机试之考勤信息(Java源码)
公司用一个字符串来表示员工的出勤信息absent:缺勤late:迟到leaveearly:早退present:正常上班现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:缺勤不超过一次;没有连续的迟到/早退;任意连续7次考勤,缺勤/迟到/早退不超过3次。原创 2023-05-31 14:08:50 · 1401 阅读 · 0 评论 -
华为OD机试之二元组个数(Java源码)
给定两个数组a,b,若a[i] == b[j] 则称 [i, j] 为一个**二元组**,求在给定的两个数组中,二元组的个数。原创 2023-05-30 16:09:55 · 1381 阅读 · 0 评论 -
华为OD机试之模拟商场优惠打折(Java源码)
模拟商场优惠打折,有三种优惠券可以用,满减券、打折券和无门槛券。满减券:满100减10,满200减20,满300减30,满400减40,以此类推不限制使用;打折券:固定折扣92折,且打折之后向下取整,每次购物只能用1次;无门槛券:一张券减5元,没有使用限制。原创 2023-05-30 10:02:03 · 993 阅读 · 1 评论 -
华为OD机试之打印机队列(Java源码)
2种方法实现:有5台打印机打印文件,每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中数字越大优先级越高>打印机会从自己的待打印队列中选择**优先级最高**的文件来打印。如果存在两个优先级一样的文件,则选择**最早进入队列**的那个文件。现在请你来模拟这5台打印机的打印过程。原创 2023-05-29 16:30:19 · 1621 阅读 · 1 评论