![](https://img-blog.csdnimg.cn/59a397b5a75c4894b1e06748fac204a9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
华为机试OD2024(Java&JS&Python&C++)
文章平均质量分 71
最全的(500+、老题库+新题库)华为OD机考算法题,最真实通过率反馈,支持Java、JavaScript、Python,每篇博客都包含详细的算法考点解析(文字+画图说明),每天实时更新,每天不定时在线答疑。(不从事代考,勿扰)
华为OD面试指南
这个作者很懒,什么都没留下…
展开
-
华为OD机试2024(JS,C++,JAVA,PYTHON)-数大雁
2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。如果不完整或者没有按顺序则不予计数。3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成,或者没有找到一只大雁,请返回-1。一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。原创 2024-06-07 14:17:29 · 89 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-敏感字段加密
给定一个由多个命令字组成的命令字符串: 1、小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;2、命令字之间以一个或多个下划线_进行分割;3、可以通过两个双引号””来标识包含下划线_的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令字前后多余的下划线_。如果无法找到指定索引的命令字,输出字符串。原创 2024-06-07 14:15:29 · 66 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-按单词下标区间翻转文章内容
a developer",翻转区间为[0,3],则输出“developer a am I”。给定一段英文文章片段,由若干单词组成,单词间以空格间隔,单词下标从0开始。这个解题思路可以确保在给定的英文文章片段中,指定区间的单词顺序被正确翻转。翻转后的英文文章片段所有单词之间以一个半角空格分隔进行输出。请翻转片段中指定区间的单词顺序并返回翻转后的内容。下标大于实际单词个数,则按最大下标算。例如给定的英文文章片段为"I。下标小于0时,从第一个单词开始。翻转区间无效时,不做翻转。使用换行隔开三个参数。原创 2024-06-04 13:49:38 · 23 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-报数问题
从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。输入人数n(n < 1000)输出最后留下的是原来第几号。,顺序排号为1-n。原创 2024-06-04 13:41:25 · 20 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-找朋友
请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。第一个小朋友身高100,站在队尾位置,向队首看,没有比他身高高的小朋友,所以输出第一个值为0。第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第二行输入N个小朋友的身高height[i],都是整数。第一行输入N,N表示有N个小朋友。输出N个小朋友的好朋友的位置。原创 2024-06-04 13:38:48 · 17 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-快速人名查找
快速人名查找要求︰人名的每个单词的连续前几位能组成给定字符串,一定要用到每个单词。然后给定一个字符串,进行快速人名查找,符合要求的输出。给一个字符串,表示用’,’分开的人名。第一行是人名,用’,’分开的人名。原创 2024-06-03 15:40:12 · 32 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-快递运输
运送的快递放在大小不等的长方体快递盒中,为了能够装载更多的快递同时不能让货车超载,需要计算最多能装多少个快递。第一行输入每个快递的重量。注:快递的体积不受限制。货车载重最大50000。如 5,10,2,11。第二行输入货车的载重量。输出最多能装多少个快递。快递数最多1000个。原创 2024-06-03 15:26:32 · 13 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-寻找连续区间,数组连续和
第一行的3表示第二行数组输入3个数,第一行的7是比较数,用于判断连续数组是否大于该数;组合为 3 + 4;3 + 4 + 7;都大于等于指定的7;给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。第一行两个整数N x(0 < N转载 2024-06-03 15:22:39 · 80 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串摘要
第一个b非连续字母,该字母之后字符串中还出现了2次(最后的两个Bb) ,所以输出b2。对b2a3c0b2进行排序,最终输出a3b2b2c0。c非连续,该字母之后字符串再没有出现过c,输出c0。的摘要算法,请输出给定字符串的摘要值。一行字符串,长度为[1,200]a连续出现3次,输出a3,Bb连续2次,输出b2。原创 2024-06-03 15:17:07 · 325 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串变换最小字符串
s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。按照要求进行变换得到的最小字符串。一串小写字母组成的字符串s。s是都是小写字符组成。原创 2024-05-29 10:07:28 · 18 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串分割为水仙花数,水仙花数Ⅱ
"水仙花数"是指一个三位数,每位上数字的立方和等于该数字本身,如 371 是’水仙花数’,因为 371=3 3+7 3+1^3。3、若分割成功且分割结果唯一,则返回分割后子串的数目。给定非空字符串s,将该字符串分割成一些子串,使。2、若分割成功且分割结果不唯一,则返回-1;根据题目描述中情况,返回相应的结果。1、若分割不成功,则返回0;输入字符串的最大长度为200。值的和均为水仙花数。原创 2024-05-29 10:05:18 · 13 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-响应报文时间
题目描述中,有一个字段称作最大响应时间(Max Response Time),HOST收到查询报文,解析出MaxResponseTime字段后,需要在(0~MaxResponseTime)s )时间内选取随机时间回应一个响应报文,如果再随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。最大响应时间有如下计算方式:当MaxRespCode < 128 ,MaxRespTime = MaxRespCode。原创 2024-05-29 10:02:39 · 15 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-告警抑制
告警抑制,是指高优先级告警抑制低优先级告警的规则。请根据原始告警列表和告警抑制关系,给出实际产生的告警列表。第一个告警A,能够抑制它的只有A0,而当前告警列表中没有A0,因此告警A可以正常发生。第二个告警B,能够抑制它的只有C,而当前告警列表中有C,因此告警B被抑制,不可以发生。A抑制了B,B抑制了C,最后实际的告警为A D E。第三个告警C,没有能抑制它的告警,因此正常发生。第四个告警D,没有能抑制它的告警,因此正常发生。第五个告警E,没有能抑制它的告警,因此正常发生。最后一行为告警产生列表,原创 2024-05-29 10:01:12 · 12 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-单词接龙
先确定起始单词word,再接以d开头的且长度最长的单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出worddwordda。先确定起始单词dword,剩余以d开头且长度最长的有dd、da、dc,则取字典序最小的da,所以最后输出dwordda。是不需要编写输入输出函数的。但是华为OD机考使用的是。所以最好在牛-客上提前熟悉这种模式。JavaScript使用node的。,需要手动编写输入和输出。原创 2024-05-29 09:58:04 · 13 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-分糖果
当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。小明最少需要多少次(取出、放回和平均分配均记一次),能将手中糖果分至只剩一颗。小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。是不需要编写输入输出函数的。但是华为OD机考使用的是。所以最好在牛-客上提前熟悉这种模式。抓取的糖果数(原创 2024-05-29 09:57:09 · 20 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-出租车计费,靠谱的车
出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。给出计费表的表面读数,返回实际产生的费用。一个数字,表示实际产生的费用。15表示实际产生的费用其实只有15块钱。81表示实际产生的费用其实只有81块钱。只有一行,数字N,表示里程表的读数。4表示实际产生的费用其实只有4块钱。100表示计费表的表面读数。17表示计费表的表面读数。原创 2024-05-29 09:47:36 · 33 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-停车场车辆统计
车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。数组cars[],其中1表示有车,0表示没车,数组长度小于1000。统计停车场最少可以停多少辆车,返回具体的数目。整型数字字符串,表示最少停车数目。1个卡车占第5、6、7个车位。1个货车占第1、2个车位。1个小车占第1个车位。1个小车占第3个车位。1个小车占第9个车位。原创 2024-05-29 09:42:13 · 31 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-停车场最大距离,找车位
例如,对于整数数组[1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1],计算得到的rightFreeSpaces数组为[4, 3, 2, 1, 0, 2, 1, 0, 1, 0, 0]。例如,对于整数数组[1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1],计算得到的最大距离为2。例如,输入"1,0,0,0,0,1,0,0,1,0,1"会被转换为整数数组[1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1]。当车停在第3个位置上时,离其最近的的车距离为2(1到3)。原创 2024-05-29 09:41:12 · 10 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-五子棋迷
题目描述:迷张兵和王武是五子棋迷,工作之余经常切磋棋艺。这不,这会儿又下起来了。走了一会儿,轮张兵了,对着一条线思考起来了,这条线上的棋子分布如下:用数组表示: -1 0 1 1 1 0 1 0 1 -1棋子分布说明:-1代表白子,0代表空位,1 代表黑子数组长度L, 满足 1 < L < 40, 且L为奇数你得帮他写一个程序,算出最有利的出子位置。最有利定义:3. 找到一个空位(0),用棋子(1/-1)填充该位置,可以使得当前子的最大连续长度变大;原创 2024-05-27 14:11:39 · 14 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-乱序整数序列两数之和绝对值最小
首先对数组进行排序,然后设置两个指针,一个从数组的起始位置开始,另一个从数组的末尾开始。在遍历过程中,我们计算两个指针所指向的元素之和的绝对值,并更新最小绝对值和对应的指针位置。给定一个随机的整数(可能存在正整数和负整数)数组 nums,请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为。这是因为我们只需要遍历一次数组,并在遍历过程中更新最小绝对值和对应的指针位置。因为 |nums[0] + nums[2]| = |-3 + 5| = 2 最小,所以返回 2。原创 2024-05-27 14:10:21 · 20 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-不等式是否满足约束并输出最大差
最大差 = max{(a11x1+a12x2+a13x3+a14x4+a15x5-b1),(a21x1+a22x2+a23x3+a24x4+ a25x5-b2),(a31x1+a32x2+a33x3+a34x4+a35x5-b3)},2)不等式变量(int类型):x1,x2,x3,x4,x5。3)不等式目标值(double类型):b1,b2,b3。是不需要编写输入输出函数的。但是华为OD机考使用的是。4)不等式约束(字符串类型):原创 2024-05-27 14:08:37 · 74 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-VLAN资源池
原VLAN资源池中有VLAN 5、6、7、8、9、10、15、18、20、21、30,从资源池中移除15后,资源池中剩下的VLAN为 5、6、7、8、9、10、18、20、21、30,按照题目描述格式并升序后的结果为5-10,18,20-21,30。如果碰到了题库中的原题,一定不要直接使用题解中的代码,尤其是变量名,一定要修改,可以改成毫无意义的单词。原VLAN资源池中有VLAN 1、2、3、4、5,从资源池中移除2后,剩下VLAN 1、3、4、5,按照题目描述格式并升序后的结果为1,3-5。原创 2024-05-27 14:07:20 · 17 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-TLV编码,TLV解析Ⅰ
如果碰到了题库中的原题,一定不要直接使用题解中的代码,尤其是变量名,一定要修改,可以改成毫无意义的单词。除了变量名之外,代码的组织结构和逻辑一定要进行改变,这就要求在日常的刷题中,提前编写好属于自己的代码。编码是按[Tag Length Value]格式进行编码的,一段码流中的信元用Tag标识,Tag在码流中唯一不重复,Length表示信元Value的长度,Value表示信元的值。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。需要解析的信元的Tag是31,原创 2024-05-27 14:06:24 · 16 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-N个选手比赛前三名,比赛
题目描述: 比赛。原创 2024-05-27 14:04:48 · 9 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-AI面板识别
如果碰到了题库中的原题,一定不要直接使用题解中的代码,尤其是变量名,一定要修改,可以改成毫无意义的单词。除了变量名之外,代码的组织结构和逻辑一定要进行改变,这就要求在日常的刷题中,提前编写好属于自己的代码。AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),由于AI识别误差,每次别到的指示灯位置可能有差异,以4个。排序后的编号列表,编号之间以空格分隔。第一行为N,表示灯的个数。原创 2024-05-27 14:02:07 · 11 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-连接器问题
然后,不断弹出连接器数组的栈顶元素,即最小长度的连接器,来对比diffs数组的栈顶元素,即最短的空隙。合并的逻辑是,创建一个辅助数组,将第一个区间作为初始值加入该数组,然后遍历剩余的区间,如果该区间可以和辅助数组的栈顶元素合并,则弹出栈顶元素并将合并后的区间加入数组;有一组区间[a0,b0],[a1,b1],…合并后:[1,10],[15,30],[33,40],使用5, 3两个连接器连接后只剩下 [1, 40]。遍历步骤1的结果,找到分离的区间,计算区间的大小,然后与连接器比较,看看长度是否合适。原创 2024-05-27 14:01:00 · 6 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-计算快递主站点
给定N个站点的可达关系,请计算至少选择从几个主站点出发,才能可达所有站点(覆盖所有站点业务)。快递业务范围有 N 个站点,A 站点与 B 站点可以中转快递,则认为 A-B 站可达,n-1,用 s[i][j]表示 i-j 是否可达,s[i][j] = 1表示 i-j可达,s[i][j] = 0表示 i-j 不可达。之后 N 行表示站点之间的可达关系,第i行第j个数值表示编号为i和j之间是否可达。如果 A-B 可达,B-C 可达,则 A-C 可达。说明:s[i][j]与s[j][i]取值相同。原创 2024-05-27 13:59:54 · 17 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-组装新的数组
第一行输入是连续数组N,采用空格分隔。输出的是组装办法数量,int类型。原创 2024-05-27 13:58:07 · 9 阅读 · 0 评论 -
华为OD机试2023(JS,C++,JAVA,PYTHON)-硬件产品销售方案
这个问题是一个典型的组合问题,需要遍历所有可能的组合。具体来说,可以从第一个产品价格开始,依次遍历所有可能的组合,直到找到所有可能的组合。在遍历的过程中,需要记录当前已经选择的产品价格列表和当前已经选择的产品价格的总和。如果当前已经选择的产品价格的总和大于等于采购金额,则返回;如果当前已经选择的产品价格的总和等于采购金额,则将当前选择的产品价格列表加入所有可能的产品价格组合列表中。最后,输出所有可能的产品价格组合列表。充足,给定每种产品的价格,记为price(不存在价格相同的产品型号)。原创 2024-05-27 13:57:15 · 5 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-查找树中元素
该方法有三个参数:nodes 表示节点信息的二维数组,x 表示节点所在的层数,y 表示节点在该层内的相对偏移。该方法有四个参数:nodes 表示节点信息的二维数组,idx 表示当前节点的索引,x 表示当前节点所在的层数,res 表示保存结果的集合。的所有节点信息,现要求根据输入坐标(x,y)找到该节点保存的内容值,其中x表示节点所在的层数,根节点位于第0层,根节点的子节点位于第1层,依次类推;题目要求我们根据坐标(x, y)查找节点保存的内容值,其中x表示节点所在的层数,y表示节点在该层内的相对偏移。原创 2024-05-27 13:56:28 · 8 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-查找充电设备组合--最接近最大输出功率的设备
如果选当前充电设备,那么当前总功率就是当前充电设备的功率加上前i-1个充电设备中总功率不超过j-当前充电设备功率的最大值,即dp[i-1][j-power[i-1]]+power[i-1];如果不选当前充电设备,那么当前总功率就是前i-1个充电设备中总功率不超过j的最大值,即dp[i-1][j]。因此,我们可以得到状态转移方程:dp[i][j] = max(dp[i-1][j], dp[i-1][j-power[i-1]]+power[i-1])。其中,i表示前i个充电设备,j表示总功率不超过j。原创 2024-05-27 13:55:23 · 107 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-服务中心选址
一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址:使服务中心到所有区域的距离的总和最小。服务中心位置为location,请返回最佳的服务中心位置到所有区域的距离总和的最小值。运行结果输出一个整数,表示服务中心位置到所有区域的距离总和的最小值。后面N行,每行两个整数,表示区域的左右起点终点。第一行,一个整数N表示区域个数。原创 2024-05-27 13:54:18 · 7 阅读 · 0 评论 -
华为OD机试2023(JS,C++,JAVA,PYTHON)-最多几个直角三角形
每行第一个正整数N,表示线段个数(3原创 2024-05-27 13:51:21 · 82 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-探索地块建立
其中,前缀和矩阵的计算可以使用动态规划的思想,时间复杂度为O(nm),统计满足条件的地块数量的时间复杂度为O(nm),因此整个算法的时间复杂度为O(nm)。统计满足条件的地块数量,具体方法是通过遍历每个正方形的右下角坐标,计算正方形内地块的发电量总和,判断是否大于等于目标电量。其中9,起始就是下图中绿色部分,是一个c*c的区域,9是这个区域的发电量总和。但是仍有概率抽到A卷。因此,9,16,22,21每一个都是符合要求发电站发电量>6的区域,因此结果输出4个。这样的话,最终得到【9,16,22,21】原创 2024-05-24 15:32:58 · 19 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-字符串解密
1里的加扰子串“123ad”、“ffc79”去除后得到有效子串序列:"my"、"pt",其中"my"里不同字母的数量为2(有‘m’和'y'两个不同字母),“pt”里不同字母的数量为2(有'p'和't'两个不同字母);(1)这个有效子串里不同字母的数量不超过且最接近于string2里不同字母的数量,即小于或等于string2里不同字母的数量的同时且最大。(’a’ ’z’)和数字字符(’0’ ’9’)组成,而加扰字符串由’0’ ’9’、’a’ ’f’组成。string1是一个被加扰的字符串。原创 2024-05-24 15:30:58 · 22 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-基站维护工程师数
某地方有 n 个基站(1 < n < 10),已知各基站之间的距离 s(0 < s < 500),并且基站 x 到基站 y 的距离,与基站 y 到基站 x 的距离并不一定会相同。小王从基站 1 出发,途经每个基站 1 次,然后返回基站 1 ,需要请你为他选择一条距离最短的路。站点1到站点1的距离为0,到站点2的距离为2,到站点3的距离为1;站点2到站点1的距离为1,到站点2的距离为0,到站点3的距离为2;站点3到站点1的距离为2,到站点2的距离为1,到站点3的距离为0。它们之间相互连接,其中。原创 2024-05-24 15:29:30 · 21 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-垃圾短信识别
1:核心就是统计出题目中的三个指标L、M、N,因此主要是求得每个人发送和接收的信息,因为题目中已经指定好ID,所以只要求这个人的发送和接受短信的信息即可。第一行是条目数,接下来几行是具体的条目,每个条目,是一对ID,第一个数字是发送者ID,后面的数字是接收者ID,中间空格隔开,所有的ID都为。输出该ID是否为垃圾短信发送者,并且按序列输出 L M 的值(由于 N 值不唯一,不需要输出);深恶痛绝,希望能对垃圾短信发送者进行识别,为此,很多软件增加了垃圾短信的识别机制。3:考察的还是数据结构的使用。原创 2024-05-24 15:28:19 · 15 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-区间交叠问题
第一行输入为所有线段的数量,不超过10000,后面每行表示一条线段,格式为"x,y",x和y分别表示起点和终点,取值范围是[-10 5,10 5]。2:逐个选取每一个线段,将其作为开始的线段,再找出剩余的线段中左端点小于等于开始线段的右端点中(若没有则无解),找出右端点最大的一个线段,起始就是。上的一组线段,线段的起点和终点均为整数并且长度不小于1,请你从中找到最少数量的线段,这些线段可以覆盖柱所有线段。反复重复上一步,直到覆盖完整个长度为m的区间,就能得到最少的线段数。最少线段数量,为正整数。原创 2024-05-24 15:26:40 · 9 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-分奖金
按照工号的顺序往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得“距离*数字差值”的奖金。注:随机数字不重复,员工数量(包含老板)范围1 10000,随机数范围1 100000。第2个员工后面没有比他数字更大的员工,随机数字不重复,员工数量(包含老板)范围1~10000,随机数范围1~100000。第3个员工是最后一个员工,后面也没有比他更大数字的员工,所以他得到的奖金是3。那么第2个员工的数字10比第1个员工的数字2大,所以,他获得他分配的随机数数量的奖金,就是10。原创 2024-05-24 15:25:14 · 9 阅读 · 0 评论 -
华为OD机试2024(JS,C++,JAVA,PYTHON)-几何平均值最大子数
具体来说,二分法的上下界分别是数组中的最大值和最小值,然后每次取中间值 mid_num,计算以 mid_num 为几何平均值的子数组是否存在,并且长度是否大于等于 L。计算以 mid_num 为几何平均值的子数组是否存在,可以利用前缀和的方式来计算,同时可以利用一个临时变量 min_pre_result 来记录前缀和的最小值,以及它的位置 min_pre_result_pos,这样可以避免每次重新计算前缀和。若有多个长度相同的子数组的几何平均值均为最大值,则输出最前面的子数组。,则输出长度最小的子数组。原创 2024-05-24 15:23:17 · 6 阅读 · 0 评论