- 博客(37)
- 收藏
- 关注
原创 数组连续和 - 华为OD统一考试(C卷)
给定一个含有N个正整数的数组,求出有多少连续区间(包括单个正整数),它们的和大于等于。注意:此题对效率有要求,暴力解法通过率不高,请考虑高效的实现方式。个正整数 (每个正整数小于等于 100)。输出一个整数,表示所求的个数。
2025-03-18 18:52:43
477
原创 【华为OD题库-016】字符串摘要-Java
第一个b非连续字母,该字母之后字符串中还出现了2次(最后的两个Bb),所以输出b2。a连续出现3次,输出a3,c非连续,该字母之后字符串再没有出现过c,输出c0,Bb连续2次,输出b2。4、对按照以上方式表示后的字符串进行排序:字母和紧随的数字作为一组进行排序,数字大的在前,数字相同的则按字母进行排序,字母小的在前。3、如果是非连续的宁符(不区分大小写),则输出:该字符(小写)该字母之后字符串中出现的该字符的次数。2、如果出现连续字符(不区分大小写),则输出:该字符(小)+连续出现的次数。
2025-03-17 13:26:21
435
原创 【华为OD机考真题】- 用户调度问题(Java)
题目: 在通信系统中,一个常见的问题是对用户进行不同策略的调度,会得到不同的系统消耗和 性能。假设当前有n个待串行调度用户,每个用户可以使用 A/B/C 三种不同的调度策略,不同的策略会消耗不同的系统资源。1、相邻的用户不能使用相同的调度策略,例如,第1个用户使用了 A策略,则第2 个用户只能使用 B或者 C 策略.3、每个用户依次选择当前所能选择的对系统盗源消耗最少的策略(局部最优),如果有多个满足要求的策略,选最后一个。示例说明: 1号用户使用 B策略,2号用户使用C策略,3号用户使用B策略。
2025-03-14 14:35:10
458
原创 华为OD机考真题 Linux 发行版的数量(Java)
这些发行版互相存在关联,例如 Ubuntu 基于 Debian 开发,而 Mint 又基于 Ubuntu 开发,那么我们认为 Mint 同 Debian 也存在关联。给你一个 n x n的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个发行版和第 j 个发行版直接关联,而 isConnectedlI = 0 表示二者不直接相连。发行版集是一个或多个相关存在关联的操作系统发行版,集合内不包含没有关联的发行版。输出最大的发行版集中发行版的数量。
2025-03-13 12:21:45
400
原创 【华为机试】玩牌高手(Java)
在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为0。第七轮如果不选择该轮牌面,则总分数还原到3轮1前分数,即第四轮的总分数4,如果选择该轮牌面,总分数为11,所以选择该轮牌面。第一行为一个小写逗号分割的字符串,表示n轮的牌面分数,1<= n <=20。第二轮不选择该轮牌面,总分数还原为0。第三轮不选择该轮牌面,总分数还原为0。
2025-03-12 12:05:53
218
原创 华为OD机试真题---机房布局(Java)
机房布局问题描述如下:小明正在规划一个大型数据中心机房,为了使得机柜上的机器都能正常满负荷工作,需要确保在每个机柜边上至少要有一个电箱。为了简化题目,假设这个机房是一整排,M表示机柜,I表示间隔,要求返回整排机柜至少需要多少个电箱。如果无解则返回-1。一个字符串cabinets,其中M表示机柜,I表示间隔。字符串长度满足1 ≤ strlen(cabinets) ≤ 10000。例如:其中M表示机柜,I表示间隔返回整排机柜至少需要多少个电箱。表示至少需要2个电箱补充说明:1<= strlen(cabin
2025-03-11 13:30:29
396
原创 【华为OD机考真题】- 星际篮球争霸赛(Java)
可以并列,所以宇宙战队决定在比赛中,尽可能让更多队员上场,并且让所有得分的选手得分都相同,然而比赛过程中的每1分钟的得分都只能由某一个人包揽。在星球争霸篮球赛对抗赛中,最大的宇宙战队希望每个人都能拿到 MVP,MVP 的条件是单场最高分得分获得者。示例说明: 样例解释 一共 4人得分,分别都是6分:5+1,5+1,5+1,2+2+2。输入第一行为一个数字 t,表示为有得分的分钟数 1<=t <= 50,第二行为t个数字,代表每一分钟的得分p,1<=t <= 50.
2025-03-10 13:59:28
777
原创 华为OD机试真题---最大花费金额
一、题目描述双十一众多商品进行打折销售,小明想购买自己心仪的一些物品,但由于受购买资金限制,所以他决定从众多心仪商品中购买三件,而且想尽可能的花完资金。现在请你设计一个程序帮助小明计算尽可能花费的最大资金数额。输入:第一行为一维整型数组m,数组长度小于100,数组元素记录单个商品的价格,单个商品价格小于1000。第二行为购买资金的额度r,r小于100000。输出:输出为满足上述条件的最大花费额度。二、解题思路这道题目主要考察组合算法以及算法优化能力。
2025-03-09 13:06:28
268
原创 【华为OD机考真题】- 路灯照明(Java)
注:这里需要注意照明半径大于100时,需要判断当前灯半径是否大于前一个灯半径-100,如果是大于则将当前灯半径传给下一个灯,如果小于则,将前一个灯半径-100传给下一个灯。示例说明: 50+70>100,70+20<100,20+70<100,所以有 两个未要盖的区间,总里程为 10+10=20。第二行为 N 个空格分割的数,表示路灯的照明半径,1 <= 照明半径。第一行为一个数 N,表示路灯个数:1 <= N <= 100000,无法照明的区间的长度和。
2025-03-08 13:17:55
246
原创 【华为OD题库-040】计算最接近的数-java
在下标为0的表达式 值为 X[0]-X[1]-X[i+k-1] 这里i+k-1=2,意味着i+k-1为上限的下标值为2,以此类推,当i=5时,表达式的值为X[5]-X[6]-X[5+3-1]这里i+k-1 = 7,已经超出了X的下标,所以这里上限下标应该是X数组的lenght=7。根据题目得知,表达式X[i]-x[i+1]…-X[i+k-1],来计算生成的值,如果X数组有i个值,那么表达式生成的数为i-1个。2、计算结果为1:X[50,50,2,3]根据题目计算X[i]-x[i+1]…
2025-03-06 14:35:22
403
原创 【2023华为OD机试题】分奖金
公司老板做了一笔大生意,想要给每位员工分配一些奖金,想通过游戏的方式来决定 每个人分多少钱。按照工号的顺序 往后排列,遇到第一个数字比自己数字大的,那么,前面的员工就可以获得“ 距离 * 数字差值 ”的奖金。那么第2个员工的数字10比第1个员工 的数字2大,所以,第1个员工可以获得1*(10-2)=8。第2个员工后面没有比他数 字更大的员工,所以,他获得他分配的随机数数量的奖金,就是10。第3个员工是最 后一个员工,后面也没有比他更大数字的员工,所以他得到的奖金是3。第二是每位员工分配的随机数字。
2025-03-05 11:53:47
114
原创 AI面板识别 - 华为OD统一考试(java)
其实就是先按行,再按列进行排序,这里的行不是严格的行(在一定范围内可以认为是同行)。数据量不大可以直接按照题目要求进行模拟得到答案。使用map分别对编号和坐标进行存储,再根据坐标分别排序即可。由于AI识别误差,每次别到的指示灯位置可能有差异,以4个坐标值描述AI识别的指示灯的大小和位置(左上角x1,y1,右下角x2,y2),AI识别到面板上有N(1 ≤ N ≤ 100)个指示灯,灯大小一样,任意两个之间无重叠。排序后的编号列表,编号之间以空格分隔。编号 x1 y1 x2 y2。题目就是一道模拟排序题。
2025-03-04 15:56:27
304
原创 华为od机试-缓存需要最少金币数 /静态扫描(java)
文件大小相同,扫描成本均为1个金币。3、扫描报告缓存后,后继再碰到该文件则不需要扫描成本,直接获取缓存结果给出。1、文件扫描的成本和文件大小相关,如果文件大小为N,则扫描成本为N个金币。文件标识序列和文件大小序列,求解采用合理的缓存策略,最少需要的金币数。2、扫描报告的缓存成本和文件大小无关,每缓存一个报告需要M个金币。第二行为文件标识序列: F1,F2,F3,....,Fn。第三行为文件大小序列: S1,S2,S3,....,Sn。采用合理的缓存策略,需要的最少金币数。
2025-03-03 22:31:47
415
原创 【华为OD机考真题】- 求最多可以派出多少支团队(Java)
题目: 用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,且1个人只能参加1个团队,请计算出最多可以派出多少支符合要求的团队?第二行数组代表每个人的能力,每个元素的取值范围[1,500000],数组的大小范围[1,500000].示例说明: 3,5 组成一队,1,7 组成一队,9 自己一个队,故输出 3。第三行数值为团队要求的最低能力值,范围[1,500000].第一行数组代表总人数,范围[1,500000].最多可以派出的团队数量。
2025-03-02 22:44:16
191
原创 华为OD-E卷 - 最大矩阵和 100分(java)
输入的第一行包含2个整数n, m(1 <= n, m <= 10),表示一个n行m列的矩阵,下面有n行,每行有m个整数,同一行中,每2个数字之间有1个空格,最后一个数字后面没有空格,所有的数字的在[-1000, 1000]之间。给定一个二维整数矩阵,要在这个矩阵中选出一个子矩阵,使得这个子矩阵内所有的数字和尽量大,我们把这个子矩阵称为和最大子矩阵,子矩阵的选取原则是原矩阵中一块相互连续的矩形区域。将每一个小矩形的长宽情况都列举出来,再根据每次所列出的长宽,将给出的大矩形切割,获得最大和。
2025-03-02 17:00:07
306
原创 华为机试真题 java实现【最短木板长度】【2022.11 q4 新题】
小明有 n 块木板,第 i ( 1 ≤ i ≤ n ) 块木板长度为 ai。小明买了一块长度为 m 的木料,这块木料可以切割成任意块,拼接到已有的木板上,用来加长木板。小明想让最短的模板尽量长。请问小明加长木板后,最短木板的长度可以为多少?输入的第一行包含两个正整数,n(1≤n≤10^ 3),m(1≤m≤10^ 5) n表示木板数,m表示木板长度。输入的第二行包含n个正整数,a1,a2…au(1≤ai≤10^6)。
2025-02-28 21:05:37
91
原创 华为OD机试真题 Java 实现 [箱子之形摆放]
注:本文章,我认为题目表达的意思是这样,路线为z字,宽度n为 行高。我仅是根据我的理解来编写的代码,如有偏颇,请担待!要求将这批箱子按从上到下以之字形的顺序摆放在宽度为 n 的空地,请输出箱子的摆放位置。输入一行字符串,通过空格分隔,前面部分为字母或数字组成的字符串 str,表示箱子;后面部分为数字 n,表示空地的宽度。例如: ABCDEFG 3。有一批箱子(形式为字符串,设为 str),请不要在最后一行输出额外的空行。箱子摆放结果,如题目示例所示。str只包含字母和数字,
2025-02-28 00:32:32
239
原创 华为机试:最远足迹(java)
仪器记录坐标时,坐标的数据格式为(x,y),如(1,2)、(100,200),其中0<x<1000,0<y<1000。同时存在非法坐标,如(01,1)、(1,01),(0,100)属于非法坐标。记录仪中的合法坐标有3个: (3,10), (3,4), (5,10),其中(5,10)是相距总部最远的坐标, 输出(5,10)。备注:不需要考虑双层括号嵌套的情况,比如sfsdfsd((1,2))。设定探险队总部的坐标为(0,0),某位置相对总部的距离为:x * x+ y * y。字符串,表示最远足迹到达的坐标。
2025-02-26 22:19:26
242
原创 智能驾驶 - 华为OD统一考试(C卷)(java)
注:我的这种方法是比较取巧的,在考虑有两个加油站的时候,并没有选择省油的路径,而是,经过了两个加油站。所以比较取巧,在有加油站的情况下,只考虑了终点到加油站的最短距离,加油站到加油站的最短距离,加油站到终点的最短距离,只能说勉强符合题目。的地图的左上角(起点)开往地图的右下角(终点 ),去往每一个地区都需要消耗一定的油量,加油站可进行加油。的矩阵,其中的值是 0 或 −1 或正整数,加油站的总数不超过 200个。−1:表示加油站,可以加满油,汽车的油箱容量最大为 100;
2025-02-25 22:22:57
239
原创 华为OD机试E卷-增强的strstr(100) JAVA
现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置。与strstr函数不同,返回的是源字符串中,匹配子字符串相对于源字符串地址的偏移 (从0开始算),如果没有匹配返回-1。补充说明: 源字符串中必定不包含"[]”,目标字符串中”[]"必定成对出现,且不会出现嵌套。相当于是在源字符串中查找dcf或者dcd,子字符串相对于abcdefd都不存在,返回-1。相当于是在源字符串中查找def或者ded,def子字符串相对于abcdefd的偏移是3。
2025-02-21 22:03:12
172
原创 华为OD机试- 跳房子I
假设房子的总格数是count,小红每回合可能连续跳的步教都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到量后一格?此样例有多种组合满足两回合跳到最后,譬如: [-1,9],[2,6],其中[-1,9]的索引和为0+3=3,[2,6]的索和为1+4=5,所以索引和最小的步数组合[-1,9]提供的数据保证存在满足题目要求的组合,且索引和最小的步数组合是唯一的。数组中的步数可以重复,但数组中的元素不能重复使用。跳房子的过程中,可以向前跳,也可以向后跳。注:是满足两步跳到目标位置。
2025-02-20 23:50:22
446
原创 华为OD机试 E卷|响应报文时间(java)
IGMP协议中,有一个字段称作最大响应时间(Max Response Time),HOST收到查询报文,解折出MaxResponsetime字段后,需要在(0,MaxResponseTime)时间(s)内选取随机时间回应一个响应报文,如果在随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。第200秒收到第2个报文,响应时间为60,则要到200+60=260秒响应,与上面的报文的响应时间比较获得响应时间最小为260秒;最终得到最小响应报文时间为11秒。
2025-02-19 22:04:21
422
原创 计算面积 - 华为OD统一考试(C卷)
指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负数表示负向偏移。接下来N行,每行两个整数表示一条绘制指令X offsetY,用例保证横坐标X以递增排席方式出现,目不会出现相同横坐标X;取值范围: 0<N<=10000,0<= X<=E<=20000,-10000 <= offsetY <= 10000。给定了横坐标终点值E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积。
2025-02-18 22:37:41
293
原创 2023华为od机试C卷【智能成绩表】Java 实现
第3行开始的n行,每行包含一个学生的姓名和该生m个科目的成绩(空格隔开),学生不会重名。学生姓名只由英文字母构成,长度不超过10个字符。成绩是0~100的整数,依次对应第2行中输入的科目。第2行输入m个科目名称,彼此之间用空格隔开。科目名称只由英文字母构成,单个长度不超过10个字符。科目的出现顺序和后续输入的学生成绩一一对应。不会出现重复的科目名称。输出一行,按成绩排序后的学生名字,空格隔开。第1行输入两个整数,学生人数n和科目数量m。第n+2行,输入用作排名的科目名称。若科目不存在,则按总分进行排序。
2025-02-14 22:15:27
243
原创 【华为OD题库-073】字符串变换最小字符串-java
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。abcdef已经是最小字符串,不需要交换。a和b进行位置交换,可以得到最小字符串。按照要求进行变换得到的最小字符串。—串小写字母组成的字符串s。s是都是小写字符组成。
2025-02-12 22:15:34
132
原创 华为OD统一考试 - 考勤信息(java)
根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,公司用一个字符串来表示员工的出勤信息。用户的考勤数据字符串。
2025-02-10 22:30:45
131
原创 华为OD机试真题-连续字母长度
同一字母连续出现的最多的是A,三次;三个子串长度均为1,所以此时k=1,k=2,k=3这三种情况均输出1。特此说明,避免歧义。注:本文章只是提供一种方法,作为一个记录,相较一些大佬的代码而言,此代码比较冗余。的子串中,长度第k长的子串的长度,相同字母只取最长的那个子串。第一行有一个子串(1<长度<=100),只包含大写字母。只含有3个包含同一字母的子串,小于k,输出-1。给定一个字符串Q,只包含大写字母,求在包含。同一字母连续出现的最多的是A和H,四次;下个最长子串是B,所以输出1。
2025-02-08 23:49:24
145
原创 新】华为OD机试 - 水仙花数 2(java)
给定非空字符串s,将该字符串分割成一些子串,使每个子串的ASCII码值的和均为水仙花数。3、若分割成功且分割结果唯一,则返回分割后子串的数目。2、若分割成功且分割结果不唯一,则返回-1;根据题目描述中情况,返回相应的结果。1、若分割不成功,则返回0;输入字符串的最大长度为200。
2025-02-06 23:23:00
283
原创 手机App防沉迷系统 - 华为OD统一考试(C卷)
数据说明如下 1、N行注册数据以空格分隔,四项数依次表示: App名称、优先级、起始时间,结束时间 2.优先级1-5,数字值越大,优先级越高 3、时间格式HH:MM,小时和分钟都是两位,不足两位前面补0 4.起始时间需小于结束时间,否则注册不上 5.注册信息中的时间段包含起始时间点,不包含结束时间点。请编程实现,根据输入数据注册App,并根据输入的时间点,返回时间点注册的App名称,如果该时间点没有注册任何App,请返回字符串“NA"。如果App的优先级相同,则后添加的App不能注册。
2025-02-05 23:47:31
214
原创 【华为OD-E卷】TLV解析Ⅰ(java)
题目描述:TLV 编码是按 [ Tag Length Value ] 格式进行编码的,一段码流中的信元用Tag标识, Tag在码流中 唯一不重复 ,Length表示信元Value的长度,Value表示信元的值。码流以某信元的Tag开头,Tag固定占 一个字节,Length固定占 两个字节,字节序为 小端序。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。输入码流的16进制字符中,不包括小写字母,且要求输出的16进制字符串中也不要包含小写字母;
2025-01-25 21:58:52
193
原创 华为OD机试E卷 - 敏感字段加密(Java)
给定一个由多个命令字组成的命令字符串:1、字符串长度小于等于127字节,只包含大小写字母,数字,下划线和偶数个双引号;2、命令字之间以一个或多个下划线进行分割;3、可以通过两个双引号””来标识包含下划线的命令字或空命令字(仅包含两个双引号的命令字),双引号不会在命令字内部出现;请对指定索引的敏感字段进行加密,替换为******(6个*),并删除命令字前后多余的下划线。如果无法找到指定索引的命令字,输出字符串ERROR。
2025-01-25 00:14:07
227
原创 华为OD机试E卷 –构成的正方形数量–24年OD统一考试(Java)
输入N个互不相同的二维整数坐标,求这N个坐标可以构成的正方形数星。(内积为零的的两个向量垂直)注:以下代码是我硬莽出来的,解题代码比较稚嫩,代码性能优化不是太好,如果,有问题请多包涵!之后的N行输入为坐标xy以空格分隔,x,y为整数,-10≤x,y ≤10。第─行输入为N,N代表坐标数量,N为正整数, N≤ 100。这里我又加了一个案例,使题目问题更加具体。输出可以构成的正方形数量。3个点不足以构成正方形。
2025-01-22 22:07:56
465
原创 华为OD机试E卷 --最整数--24年OD统一考试(Java)
给定—组整数(非负),重排顺序后输出一个最大的整数。示例1输入:[10,9]输出:910说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
2025-01-20 18:54:47
180
原创 华为OD机试真题 JAVA】火星文计算【2022 Q4 | 100分】
输入的字符串说明:字符串为仅由无符号整数和操作符(#、$)组成的计算表达式。3、火星人公式中,$的优先级高于#,相同的运算符,按从左到右的顺序计算。保证输入的字符串为合法的求值报文,例如:123#4$5#67$78。用例保证字符串中,操作数与操作符之间没有任何分隔符。现有一段火星人的字符串报文,请你来翻译并计算结果。用例保证操作数取值范围为32位无符号整数。保证输入以及计算结果不会出现整型溢出。例如:123#4$5#67$78。2、地球人公式按C语言规则计算。1、其中x、y是无符号整数。
2025-01-19 23:00:00
109
原创 【华为OD机试真题】【2024年E卷】数值同化-队列&BFS(Java)
其中值为1的元素具备同化特性,每经过1S,将上下左右值为0的元素同化为1。将数组所有成员随机初始化只为0或2,再将矩阵的[0,0]元素修改成1,在经过足够长的时间后,求矩阵中有多少个元素是0或2(即0和2数量之和)。注:作为新手,并未使用队列&BFS,代码自己硬磕出来,相对于使用队列&BFS效果差非常多,继续加油吧,本文只是作为一个记录!只有第一列被同化为1了,第2、3、4列没有被同化,因为第二列全是值为2的元素,阻挡住同化了。除了矩阵中3个值为2的元素,其他元素全部同化为1了。
2025-01-19 17:05:59
122
原创 【华为OD机试真题】【2024年E卷】虚拟理财游戏-模拟&贪心(Java)
在一款虚拟游戏中生活,你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。现有一家Bank,它提供有若干理财产品M个,风险及投资回报不同,你有N(元)进行投资,能接收的总风险值为X。投资第二项30个单位,第四项40个单位,总的投资风险为两项相加为4+6=10。在虚拟游戏中,最小单位为整数,不能拆分为小数;在虚拟游戏中,每项投资风险值相加为总风险值;在虚拟游戏中,最多只能投资2个理财产品;第二行:产品投资回报率只序列。第四行:最大投资额度序列。第三行:产品风险值序列。
2025-01-19 14:50:14
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人