- 博客(49)
- 收藏
- 关注
原创 华为OD 中文分词模拟器(java)
1.精确分词: 字符串分词后,不会出现重叠。即“ilovechina” ,不同词库可分割为 “i,love,china” “ilove,china”,不能分割出现重叠的"i,ilove,china",i重叠出现。统计出来的常用词汇例:dictionary=["i","love","china","lovechina","ilove"],第二行输入中文词库 "i,love,china,ch,na,ve,lo,this,is,the,word"按顺序输出分词结果 "i,love,china"
2024-06-21 14:39:23
404
原创 华为OD 部门人力分配(java)
requirements[i] 表示,requirements[i] 表示第 i 个需求的工作量大小,单位:人月。这部分需求需要在 M 个月内完成开发,进行人力安排后每个月的人力是固定的。目前要求每个月最多有 2 个需求开发,并且每个月需要完成的需求不能超过部门人力。当选择人力为6时,2个需求量为3的工作可以在1个月里完成,其他2个工作各需要1个月完成。可以在3个月内完成所有需求。当选择人力为5时,4个工作各需要1个月完成,一共需要4个月才能完成所有需求。,输出部门需要人力需求,行末无多余的空格。
2024-06-21 12:48:14
486
1
原创 华为OD 最小矩阵宽度(java)
现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。输出包含一个整数,表示满足要求子矩阵的最小宽度,若找不到,输出-1.下一行包含K个整数,表示所需包含的数组,K个整数可能存在重复数字。矩阵第0、3列包含了1、2、3,矩阵第3、4列包含了1、2、3。给定一个矩阵,包含N*M个整数,和一个包含K个整数的数组。第一行输入两个正整数N,M,表示矩阵大小。矩阵第1、2、3、4、5列包含了1、1、4。接下来N行M列表示矩阵内容。所有输入数据小于1000。下一行包含一个正整数K。
2024-06-20 22:38:29
220
原创 华为OD 石头剪刀布游戏
石头剪刀布游戏有3种出拳形状:石头、剪刀、布。分别用字母 A,B,C表示。1)出拳形状之间的胜负规则如下:A> B;B> C;C> A“>” 左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。2) 当本场次中有且仅有一种出拳形状优于其它出拳形状,则该形状的玩家是胜利者。否则认为是平局。例如1 三个玩家出拳分别是 A,B,C。由于出现三方优势循环(即没有任何一方优于其它出拳者),判断为平局。例如2 三个玩家,出拳分别是 A,B。出拳A的获胜。例如3 三个玩家,出拳全部是 A。
2024-06-20 21:51:29
513
转载 华为OD 任务处理
在某个项目中有多个任务(用 tasks 数组表示)需要您进行处理,其中 tasks[i] = [si, ei],你可以在 si <= day <= ei 中的任意一天处理该任务。请返回你可以处理的最大任务数。注:一天可以完成一个任务的处理。第一行为任务数量 n,1 <= n <= 100000。后面 n 行表示各个任务的开始时间和终止时间,用 si 和 ei 表示,1 <= si <= ei <= 100000。输出为一个整数,表示可以处理的最大任务数。
2024-06-20 21:23:14
263
转载 华为OD 田忌赛马(java)
给定两个只包含数字的数组a,b,调整数组 a 里面数字的顺序,使得尽可能多的 a[i] >b[i]。数组 a和 b 中的数字各不相同。输出所有可以达到最优结果的 a 数组的数量输入的第一行是数组 a 中的数字,其中只包含数字,每两个数字之间相隔一个空格,a 数组大小不超过 10输入的第二行是数组 b 中的数字,其中只包含数字,每两个数字之间相隔一个空格,b数组大小不超过 10输出所有可以达到最优结果的 a 数组数量输入:11 8 2010 13 7输出:1。
2024-06-20 20:52:38
176
转载 华为OD 可以组成网络的服务器
在一个机房中,的位置标识在 n*m 的整数矩阵网格中,1 表示单元格上有服务器,0 表示没有。如果两台服务器位于同一行或者同一列中紧邻的位置,则认为它们之间可以组成一个局域网。请你统计机房中最大的包含的服务器个数。第一行输入两个正整数,n和m,0<n,m<=100之后为n*m的,代表服务器信息最大局域网包含的服务器个数。输入:2 21 01 1输出:3[0][0]、[1][0]、[1][1]三台服务器相互连接,可以组成局域网。
2024-06-20 19:27:56
247
转载 华为OD 项目排期(java)
项目组共有N个开发人员,项目经理接到了M个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。假定各个需求直接无任何先后,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。第一行输入为M个需求的工作量,单位为天,用逗号隔开。例如:X1 X2 X3 .... Xm表示共有M个需求,每个需求的工作量分别为X1天,X2天......Xm天。其中0<M<30;0<Xm<200第二行输入为项目组人员数量N例如:5表示共有5名员工,其中0<N<10。
2024-06-20 15:28:59
282
转载 华为OD 电脑病毒感染
一个内有很多台电脑,分别标注为0 - N-1的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t表示。其中网络内一个电脑被病毒感染,其感染网络内所有的电脑需要最少需要多长时间。如果最后有电脑不会感染,则返回-1给定一个数组times表示一个电脑把相邻电脑感染所用的时间。如图:path[i]= {i,j, t} 表示电脑i->j 电脑i上的病毒感染j,需要时间t。432 1 12 3 13 4 122第一个参数:局域网内电脑个数N 1<=N<=200;
2024-06-20 14:43:32
286
原创 华为OD 找城市
一张地图上有n个城市,城市和城市之间有且只有一条道路相连:要么直接相连,要么通过其它城市中转相连(可中转一次或多次)。城市与城市之间的道路。当切断通往某个城市 i 的所有道路后,地图上将分为多个连通的城市群,设该城市 i 的聚集度为(Degree of Polymerization), DPi = max(城市群1的城市个数, 城市群2的城市个数, ... 城市群m的城市个数)。请找出地图上 DP 值最小的城市(即找到城市 j,使得 DPj = min(DP1, DP2 ... DPn) )
2024-06-19 22:01:39
456
转载 华为OD 分月饼(java)
中秋节,公司分,m个员工,买了n个月饼,m<=n,每个员工至少分1个月饼,但可以分多个,单人分到最多月饼的个数是Max1,单人分到第二多月饼个数是Max2,Max1-Max2 <= 3,单人分到第n-1多月饼个数是Max(n-1),单人分到第n多月饼个数是Max(n),Max(n-1) – Max(n) <= 3, 问有多少种分月饼的方法?每一行输入m n,表示m个员工,n个月饼,m<=n输出有多少种月饼分法输入:2 4输出:2分法有2种:4=1+34=2+2注意:1+3和3+1算一种分法。
2024-06-19 20:06:06
379
原创 华为 英文输入法(java)
主管期望你来实现英文单词联想功能。需求如下:依据的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。1. 英文单词联想时,区分大小写2. 缩略形式如”don't”,判定为两个单词,”don”和”t”3. 输出的单词序列,不能有重复单词,且只能是英文单词,不能有标点符号输入为两行。首行输入一段由英文单词word和标点符号组成的语句str;接下来一行为一个英文单词前缀pre。
2024-06-18 16:51:05
327
原创 华为OD 小华最多能得到多少克黄金(java)
小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n−1]和[0, m-1]。在横坐标和纵坐标的数位之和不大于k的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于k的方格存在危险不可进入。小华从入口(0,0)进入,任何时候只能向左,右,上,下四个方向移动一格。请问小华最多能获得多少克黄金?
2024-06-18 15:50:58
116
原创 华为OD 字符串变换最小字符串(java)
给定一个s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。一串小写字母组成的字符串s按照要求进行变换得到的最小字符串s是都是小写字符组成输入:abcdef输出:abcdef说明:abcdef已经是最小字符串,不需要交换输入:bcdefa输出:acdefba和b进行位置交换,可以等到最小字符串。
2024-06-18 15:18:35
227
原创 华为OD 考勤信息(java)
公司用一个字符串来表示员工的出勤信息:absent:缺勤late:迟到leaveearly:早退present:正常上班现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:缺勤不超过一次;没有连续的迟到/早退;任意连续7次考勤,缺勤/迟到/早退不超过3次用户的考勤数据字符串,记录条数 >= 1;输入<10000;不存在非法输入如:2present根据考勤数据字符串,如果能得到考勤奖,输出"true";
2024-06-18 14:50:10
280
转载 华为OD 计算面积(java)
绘图机器的绘图笔初始位置在原点(0, 0),机器启动后其绘图笔按下面规则绘制直线:1)尝试沿着横向正向绘制直线,直到给定的终点值E。2)期间可通过指令在纵坐标轴方向进行偏移,并同时绘制直线,偏移后按规则1 绘制直线;指令的格式为X offsetY,表示在横坐标X 沿纵坐标方向偏移,offsetY为正数表示正向偏移,为负向偏移。给定了横坐标终点值E、以及若干条绘制指令,请计算绘制的直线和横坐标轴、以及 X=E 的直线组成图形的面积。首行为两个整数 N E,表示有N条指令,机器运行的横坐标终点值E。
2024-06-18 14:14:47
122
原创 华为OD 攀登者1(java)
喜欢寻找各种地图,并且尝试攀登到最高的山峰。表示为一维数组,数组的索引代表水平位置,数组的高度代表相对海拔高度。其中数组元素0代表地面。例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5和8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为3,10。一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。
2024-06-18 10:36:20
285
原创 华为OD 求字符串中所有整数的最小和(java)
s,输出s中包含所有整数的最小和1.s,只包含 a-z A-Z +-;2. 合法的整数包括1) 正整数 一个或者多个0-9组成,如 0 2 3 002 1022)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023包含数字的字符串所有整数的最小和bb1234aa10bb12-34aa-31。
2024-06-18 10:05:29
280
原创 华为OD 执行任务赚积分(java)
现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。每个任务都有最晚处理时间限制和积分值,在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。可用于处理任务的时间有限,请问在有限的时间内,可获得的最多积分。第一行为一个数N,表示有N个任务,1<=N<=100第二行为一个数T,表示可用于处理任务的时间。1<=T<=100接下来N行,每行两个空格分隔的整数(和V),SLA表示任务的最晚处理时间,V表 示任务对应的积分。可获得的最多积分输入:431 21 3。
2024-06-17 22:45:20
239
转载 华为OD 停车场车辆统计
特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3),统计停车场最少可以停多少辆车,返回具体的数目。整型数组cars[],其中1表示有车,0表示没车,数组长度小于1000。整型数字字符串,表示最少停车数目。1,0,121个小车占第1个车位第二个车位空1个小车占第3个车位最少有两辆车31个货车占第1、2个车位第3、4个车位空1个卡车占第5、6、7个车位第8个车位空。
2024-06-17 21:47:30
230
原创 华为OD 小朋友来自多少小区
幼儿园组织活动,老师布置了一个任务:每个小朋友去了解与自己同一个小区的小朋友还有几个。我们将这些数量汇总到数组garden中。请根据这些小朋友给出的信息,计算班级小朋友至少来自几个小区?输入:garden[] = {2, 2, 3}garden最大为999每个小区的小朋友数量最多1000人,也就是garden[i]的范围为[0,999]输出:72 2 37解释:第一个小朋友反馈有两个小朋友和自己同一小区,即此小区有3个小朋友第二个小朋友反馈有两个小朋友和自己同一小区,即此小区有3个小朋友。
2024-06-17 16:46:39
380
原创 华为OD 提取字符串中的最长数学表达式并计算(java)
提取字符串中的最长合法简单,字符串长度最长的,并计算表达式的值。如果没有,则返回0简单数学表达式只能包含以下内容0-9数字,符号 +-*1. 所有数字,计算结果都不超过long2. 如果有多个长度一样的,请返回第一个表达式的结果3. 数学表达式,必须是最长的,合法的4. 操作符不能连续出现,如 +--+1 是不合法的字符串表达式值1-2abcd-1。
2024-06-17 15:07:39
986
2
原创 华为OD 智能成绩表
小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?第1行输入两个整数,学生人数n和科目数量m。第2行输入m个科目名称,彼此之间用空格隔开。科目名称只由构成,单个长度不超过10个字符。科目的出现顺序和后续输入的学生成绩一一对应。不会出现重复的科目名称。第3行开始的n行,每行包含一个学生的姓名和该生m个科目的成绩(空格隔开),学生不会重名。学生姓名只由英文字母构成,长度不超过10个字符。成绩是0~100的整数,依次对应第2行中输入的科目。第n+2行,输入用作排名的科目名称。
2024-06-17 11:09:56
984
原创 华为OD 数的分解(java)
给定一个正整数n,如果能够分解为m(m > 1)个连续正整数之和,请输出所有分解中,m最小的分解。如果给定整数无法分解为连续正整数,则"N"。输入数据为一整数,范围为(1, 2^30]2121=10+1121可以分解的连续正整数组合的形式有多种21=6+7+821=10+11输出,21=10+11,是最短的分解序列。2121=10+1121可以分解的连续正整数组合的形式有多种21=6+7+821=10+11因21=10+11,是最短的分解序列。所以答案是21=10+11。
2024-06-17 10:16:21
427
转载 华为OD 最长子字符串的长度(java)
给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出 'o' 字符出现了偶数次最长子字符串的长度。输入是一串小写字母组成的字符串输出是一个整数补充说明:s 只包含小写英文字母。alolobo6最长子字符串之一是 "alolob",它包含'o' 2个。looxdolx7最长子字符串是 "oxdolxl",由于是首尾连接在一起的,所以最后一个 'x' 和开头的 'l'是连接在一起的,此字符串包含 2 个'o'。
2024-06-15 15:25:57
213
原创 华为OD 求最多可以派出多少支团队(java)
用代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,且1个人只能参加1个团队,请计算出最多可以派出多少支符合要求的团队?第一行数组代表总人数,范围[1,500000]第二行数组代表每个人的能力,每个元素的取值范围[1, 500000],数组的大小范围[1,500000]第三行数值为团队要求的最低,范围[1, 500000]最多可以派出的团队数量53 1 5 7 9833,5组成一队,1,7组成一队,9自己一个队,故输出3。
2024-06-15 10:14:04
294
原创 华为OD 万能字符串拼写(java)
有一个 字符串数组 words和一个字符串chars。假如可以用chars中的字母拼写出words中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。words的字符仅由 a-z 英文小写字母组成。例如: abc chars 由 a-z 英文小写字母和 “?”组成。其中英文问号“?”表示万能字符,能够在拼写时当做任意一个 英文字母。例如: "?" 可以当做 "a"等字母。每次拼写时,chars中的每个字母和万能字符都只能使用一次。输出词汇表words中你掌握的所有单词的个数。
2024-06-14 23:52:12
294
原创 华为OD 执行时长
为了充分发挥 GPU 算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增 假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]第二个参数为任务 数组长度 ,取值范围[1, 10000]第三个参数为任务数组,数字范围[1, 10000]6一次最多执行3个任务,最少耗时6s5一次最多执行4个任务,最少耗时5s。
2024-06-14 23:06:19
413
原创 华为OD 靠谱的车
小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。比如:1. 23再多一块钱就变为25;2. 39再多一块钱变为50;3. 399再多一块钱变为500;小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。给出计费表的表面读数,返回实际产生的费用。只有一行,数字N,表示里程表的读数。一个数字,表示实际产生的费用。以回车结束。
2024-06-14 17:05:41
242
原创 华为OD 虚拟游戏理财
在一款虚拟游戏中生活,你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。现有一家Bank,它提供有若干理财产品m,风险及投资回报不同,你有N(元)进行投资,能接受的总风险值为X。你要在可接受范围内选择最优的投资方式获得最大回报。在虚拟游戏中,每项投资风险值相加为总风险值;在虚拟游戏中,最多只能投资2个理财产品;在虚拟游戏中,最小单位为整数,不能拆分为小数;投资额*回报率=投资回报。
2024-06-14 16:43:03
295
原创 华为OD 寻找最富裕的小家庭(java)
在一棵树中,每个节点代表一个家庭成员,节点的其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。现给你一棵树,请计算出最富裕的小家庭的财富和。第一行为一个数N,表示成员总数,成员编号1-N,1<=N<=1000第二行为N个空格分隔的数,表示编号1-N的成员的财富值。0<=财富值<=1000000接下来N-1行,每行两个空格分隔的整数(N1,N2),表示N1是N2的。最富裕的小家庭的财富和输入:41 21 32 4输出:700成员1,2,3组成的小家庭财富值为600。
2024-06-14 11:48:37
159
转载 华为OD 最大坐标值
小明在玩一个游戏,如下:在游戏开始前,小明站在原点处(坐标值为0)。给定一组指令和一个幸运数,每个指令都是一个整数,小明按照指定的要求前进或者后退指定的步数。前进代表朝坐标轴的正方向走,后退代表朝坐标轴的负方向走。幸运数为一个整数,如果某个指令正好和幸运数相等,则小明行进步数加1。幸运数为3,指令为[2,3,0,-5]指令为2,表示前进2步;指令为3,正好和幸运数相等,前进3+1=4步;指令为0,表示原地不动,既不前进,也不后退。指令为-5,表示后退5步;
2024-06-14 10:51:55
307
原创 华为OD 素数之积
在网络安全世界中无处不在,它利用了极大整数因数分解的困难度,数据越大,安全系数越高,给定一个32位正整数,请对其进行因数分解,找出是哪两个素数的乘积。一个正整数num如果成功找到,以单个空格分割,从小到大输出两个素数,分解失败,请输出-1 -1输入:15输出:3 5后,找到两个素数3和5,使得3*5=15,按从小到大排列后,输出3 5输入:27输出:-1 -1通过因数分解,找不到任何素数,使得他们的乘积为27,输出-1 -1。
2024-06-14 10:25:39
192
转载 华为OD 整数对最小和
给定两个整数数组array1、array2,数组元素按。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值注意:两对元素如果对应于array1、array2中的两个下标均相同,则视为同一对元素。输入两行数组array1、array2,每行首个数字为数组大小size(0 < size <= 100);接下来一行为正整数k满足要求的最小和3 1 1 23 1 2 32用例中,需要取2对元素。
2024-06-14 09:58:59
181
转载 华为OD API集群负载统计
某个产品的RESTful API集合部署在集群的多个节点上,近期对客户端访问日志进行了采集,需要统计各个API的访问频次,根据热点信息在服务器节点之间做负载均衡,现在需要实现热点信息统计查询功能。RESTful API的由多个层级构成,层级之间使用 / 连接,如 /A/B/C/D 这个地址,A属于第一级,B属于第二级,C属于第三级,D属于第四级。现在模块需要知道给定层级上某个名字出现的频次,未出现过用0次表示,实现这个功能。第一行为N,表示访问历史日志的条数,0<N<=100。
2024-06-14 09:19:18
504
转载 华为od CPU算力分配
现有两组服务器QA和B,每组有多个算力不同的CPU,其中AI是A组第i个CPU的运算能力,B1是B组第i个CPU的运算能力。为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换,求两组服务器中,用于交换的CPU的算力,并且要求从A组服务器中选出的CPU,算力尽可能小。第一行输入为L1和L2,以空格分隔,L1表示A组服务器中的CPU数量,L2表示B组服务器中的CPU数量.对于每组测试数据,输出两个整数,以空格分隔,依次表示A组选出的CPU算力、B组选出的CPU算力。
2024-06-13 22:38:22
304
转载 华为od 用连续自然数之和来表达整数
一个整数可以由连续的自然数之和来表示。给定一个整数,计算该整数有几种连续自然数之和的,且打印出每种表达式。输入描述:一个目标整数T (1 <=T<= 1000)该整数的所有表达式和表达式的个数。如果有多种表达式,输出要求为:1.自然数个数最少的表达式优先输出2.每个表达式中按自然数递增的顺序输出,具体的格式参见样例。在每个结束时,输出一行”Result:X”,其中X是最终的表达式个数。输入:9输出:9=99=4+59=2+3+4Result:3。
2024-06-13 16:34:01
418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人