Louis__7
闻道有先后,术业有专攻
展开
-
华为OD 题目汇总 Java【A卷+B卷】2023
我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。我用夸克网盘分享了「华为OD360题答案【Java】.zip」,点击链接即可保存。华为机试中出现的高频算法题目的一个汇总。原创 2023-10-23 23:13:56 · 543 阅读 · 0 评论 -
华为OD 食堂供餐(100分)【java】A卷+B卷
需要满足排队时间为0,必须保证取餐员工到达食堂时,食堂库存盒饭数量不少于本次来取餐的人数第一个单位时间来取餐的员工只能取开餐前食堂准备好的盒饭每个单位时间里制作的盒饭只能供给后续单位时间来的取餐员工。食堂在每个单位时间里制作的盒饭数量是相同的。现在需要根据以往员工取餐的统计信息,计算出一个刚好能达到排队时间为0的最低供餐速度即,食堂在每个单位时间内必须至少做出多少份盒饭才能满足要求。5.如果盒饭足够,则剩余盒饭数量 = 目前盒饭数量-每个时间段的取餐人数,再加上当前时间段生产的盒饭数量。原创 2023-10-21 00:02:23 · 423 阅读 · 0 评论 -
华为OD 玩牌高手(100分)【java】A卷+B卷
1.如果选手选择获取当前轮的牌面分数,则将当前轮的牌面分数加到总分数上,成为新的总分数。2.如果选手选择跳过当前轮,则将当前总分数还原为3轮前的总分数(即上上轮的总分数),如果当前轮次小于等于3,则总分数置为0。2.选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3 (即在第1、2、3轮选择跳过轮次) ,则总分数置为0;计算当前轮结束后的总分数 count = listi-1] + arrp,即当前轮的总分数为上一轮的总分数加上当前轮的牌面分数。原创 2023-10-21 00:02:55 · 451 阅读 · 0 评论 -
华为OD 跳格子2(200分)【java】B卷
小明和朋友玩跳格子游戏, 有 n个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择从任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈;补充说明: 1原创 2023-10-19 23:07:00 · 1880 阅读 · 0 评论 -
华为OD 走方格的方案数(100分)【java】A卷+B卷
请计算n“m的棋盘格子(为横向的格子数,m为竖向的格子数)从棋盘左上角出发沿着边缘线从左上角走到右下角,总共有多少种走法,要求不能走回头路,即: 只能往右和往下走,不能往左和往上走。我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可转存。输入两个正整数n和m,用空格隔开。(1sn,ms8).注:沿棋盘格之间的边缘线行走。原创 2023-10-25 22:03:46 · 356 阅读 · 0 评论 -
华为OD 数列描述(100分)【java】A卷+B卷
a[2]:21(含义: 其前一项a[1]=11,从左到右: 是由两个1组成,即“21”。表示a[11从左到右,连续出现了两次“1")a[3]:1211(含义: 其前一项al2=21,从左到右: 是由一个2和一个1组成,即“1211”。a[4]:111221(含义: 其前一项a[3]=1211,从左到右: 是由一个1、一个2、两个1组成,即“111221”。表示a3以左到右,连续出现了1次“1”,连续出现了1次“2”,连续出现了两次“1”)a[1]:11(含义: 其前一项a[0]=1是1个1,即“11”。原创 2023-10-25 21:56:48 · 283 阅读 · 0 评论 -
华为OD 寻找相似单词(100分)【java】A卷+B卷
最后一行是指定的待检测单词(用于检测上面给定的单词中哪些是与该指定单词是相似单词,该单词可以不是上面给定的单词)给定一个单词X,如果通过任意交换单词中字母的位置得到不同的单词Y,那么定义Y是X的相似单词,如abc、bca即为相似单词 (大小写是不同的字母,如a和A算两个不同字母)。从给定的单词组中,找出指定单词的相似单词,并且按照从小到大 字典序Q排列输出,中间以空格隔开,如果不存在,则输出null (字符串null)2.创建一个长度为 N 的字符串数组 words ,并读取输入的单词.原创 2023-10-24 23:56:53 · 174 阅读 · 0 评论 -
华为OD 天然蓄水池(100分)【java】A卷+B卷
如果蓄水量大于已有的最大蓄水量max,则更新左边界1、右边界r和最大蓄水量max。选取山脉上两个点作为蓄水库的边界,则边界内的区域可以蓄水,蓄水量需排除山脉占用的空间。使用流处理左边界和右边界之间的山脉高度,过滤出高度小于h的山脉,计算蓄水量 (h.当存在合理的水库边界时,输出左边界、空格、右边界、英文冒号、蓄水量,如果最大蓄水量大于0,则输出左边界1、右边界r和最大蓄水量max。获取左边界和右边界之间的高度h,即左边界和右边界中较小的山脉高度。当不存在合理的水库边界时,输出 0,例如0。原创 2023-10-24 23:52:05 · 121 阅读 · 0 评论 -
华为OD 预定酒店(100分)【java】A卷+B卷
4.对 priceArr 数组进行排序,以便按价格从低到高进行处理5.创建一个 ArrayList,用于存储每个酒店价格与心理价位的差值。放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为n的 数组A),他的心理价位是x元,请帮他筛选出k个最接近x元的酒店(n>=k>0),并由低到高打印酒店的价格.7.根据差值对 ArrayList 进行排序,如果差值相同,则按价格从低到高进行排序.8.创建一个 ArrayList,用于存储筛选出的酒店价格。第二行: A[] A[1]A[2]…原创 2023-10-24 23:48:12 · 69 阅读 · 0 评论 -
华为OD 硬件产品销售方案(100分)【java】A卷+B卷
输出的组合为一个数组,数组的每个元素也是一个数组,表示一种组合方案。遍历pricesList,对于每个组合,输出一个列表形式的字符串。调用递归函数getGroupPrice,传入参数priceArr、i、remainMount减去当前价格,以及更新后的priceList。如果剩余采购金额remainMount大于0,说明还有采购金额,从当前位置index开始循环遍历价格列表priceArr。假设当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不存在价格相同的产品型号)。原创 2023-10-24 23:45:23 · 146 阅读 · 0 评论 -
华为OD 单核CPU任务调度(100分)【java】A卷+B卷
如果一个任务到来时,CPU是空闲的,则CPU可以运行该任务直到任务执行完毕。如果一个任务到来时,CPU正在运行一个比它优先级更高的任务时,新到达的任务必须等待。当CPU空闲时,如果还有任务在等待,CPU会从这些任务中选择一个优先级最高的任务执行,相同优先级的任务选择到达时间最早的任务。每个任务的任务引D不同优先级数字越大优先级越高,并且相同优先级的任务不会同时到达。计算当前任务的等待时间 h,即任务的到达时间减去上一个任务结束的时间 time。按照任务执行结束的顺序,输出每个任务的任务D和对应的结束时间。原创 2023-10-24 23:33:47 · 111 阅读 · 0 评论 -
华为OD 单词搜索(200分)【java】A卷+B卷
假设给定单词 HELLOWORD,在矩阵中只要能找到 H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。输入第 1 行包含两个整数 n、m (0 < n,m < 21) 分别表示 n 行 m 列的矩阵,第 2 行是长度不超过100的单词 W (在整个矩阵中给定单词 W 只会出现一次),如果能在矩阵中连成给定的单词,则输出给定单词首字母在矩阵中的位置(第几行 第几列),找到它是一个小游戏,你需要在一个矩阵中找到给定的单词。单词搜索,上下左右搜索,典型的回溯法搜索。原创 2023-10-24 23:27:18 · 55 阅读 · 0 评论 -
华为OD 连续出牌数量(200分)【java】A卷+B卷
手里给一副手牌,数字从0-9,有r(红色),,g(绿色),b(蓝色),y(黄色)四种颜色,出牌规则为每次打出的牌必须跟上一张的数字或者颜色相同,否则不能抽选。如果打(4,y) -> (4, b) -> (3, b),那么能打三张。我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可转存。选手应该怎么选才能使得抽选的次数最大,并且输出这个最大次数。如果打(1, r)-> (5, r),那么能打两张。第二行 牌的颜色(r,g,b,y四种颜色表示)第一行 牌的数值n (1<=n<=9)原创 2023-10-24 23:24:13 · 57 阅读 · 0 评论 -
华为OD 最长广播效应(100分)【java】A卷+B卷
当指定一个结点向其他结点进行广播,所有被广播结点收到消息后都会在原路径上回复一条响应消息,请计算发送结点至少需要等待几个时间单位才能收到所有被广播结点的响应消息。网络中的结点互联互通,且结点之间的消息传递有时延,相连结点的时延均为一个时间单位。结点2到5的最小时延为2,到剩余结点的最小时延均为1,所以至少要等待2*2=4s。现给定网络结点的连接关系link[i]={u,v},其中u和v表示网络结点。输入的第一行为两个正整数,分别表示网络结点的个数N,以及时延列表的长度T;N的取值范围为[1,100];原创 2023-10-24 23:21:53 · 46 阅读 · 0 评论 -
华为OD 考古问题(200分)【java】A卷+B卷
既然要排序,我们就可以在搜索之前就对候选数组排序,一旦发现某个分支搜索下去可能搜索到重复的元素就停止搜索,这样结果集中不会包含重复列表。考古问题,假设以前的石碑被打碎成了很多块,每块上面都有一个或若干个字符,请你写个程序来把之前石碑上文字可能的组合全部写出来,按升序进行排列。典型的回溯算法,回溯算法的重点是剪枝,在遍历的过程中,一边遍历一遍检测,在一定会产生重复结果集的地方剪枝。这道题是全排列问题,是含有重复元素的全排列的问题,按任意顺序返回所有不重复的全排列。题目类型:回溯+dfs。原创 2023-10-24 23:20:01 · 50 阅读 · 0 评论 -
华为OD 污染水域(200分)【java】A卷+B卷
注:这里有一个小细节就是,可以直接修改原数组,扩散到了就在原数组上加1,最后统计数组中最大值-1即可。数组中只有0和1,0表示纯净,1表示污染,每天只可污染上下左右的水域,如果开始全部被污染,或永远无法污染,则返回-1。这道题是典型的图的多源BFS问题,可以参考【Leetcode】图的多源BFS详解加强对图的多源BFS方法的学习。输入一行字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染。然后从各个污染源同时开始一圈一圈的向净水扩散,那么最后扩散到的净水就是花费的天数!原创 2023-10-24 23:03:42 · 386 阅读 · 0 评论 -
华为OD 最小传输时延(100分)【java】A卷+B卷
现给定相连节点之间的时延列表times[i]={u,v,w},其中u表示源结点,v表示目的结点,w表示u和v之间的消息传递时延。时延列表times的长度不超过6000,且 1原创 2023-10-24 22:41:56 · 269 阅读 · 0 评论 -
华为OD 最大岛屿体积(100分)【java】A卷+B卷
这道题完完全全就是leetcode上的200.岛屿的数量,那道题是统计岛屿的个数,这个题是统计最大岛屿的体积。在dfs里面累加各个小岛屿的体积,然后在外面判断是否最大。给你一个由 大于0的数(陆地)和 0(水)组成的的二维网格,请你计算网格中最大岛屿的体积。陆地的数表示所在岛屿的体积。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。第一行是二维网格的宽和高。题目类型:回溯+dfs。后面几行是二维网格。输出岛屿的最大体积。原创 2023-10-24 22:38:00 · 251 阅读 · 0 评论 -
华为OD 完全二叉树非叶子部分后序遍历(200分)【java】A卷+B卷
给定一个以顺序储存结构存储整数值的完全二叉树序列(最多1000个整数),请找出此完全二叉树的所有非叶子节点部分,然后采用后序遍历方式将此部分树(不包含叶子)输出。Node类构造数据结构,在用leetcode刷题时,都是构造好的二叉树,只需要直接调用即可,这里可以通过这道题学习一下自己构造二叉树的结构。这道题首先考察二叉树的结构,是选择用类去构造二叉树的结构,还是直接使用数组去表示二叉树的结构,这里两种方法都实现一下。然后就是删除叶子节点,后序遍历,这些都是二叉树的常规算法思路。可以直接使用递归方法去实现。原创 2023-10-23 23:10:55 · 577 阅读 · 0 评论 -
华为OD 数组二叉树(200分)【java】A卷+B卷
二叉树也可以用数组来存储,给定一个数组,树的根节点的值存储在下标1,对于存储在下标N的节点,它的左子节点和右子节点分别存储在下标2N和2N+1,并且我们用值-1代表一个节点为空。这道题要计算从根节点到最小的叶子节点的路径,首先二叉树找满足条件的子树,会优先想到dfs,递归找左右子树。然后就是叶子节点的判断,叶子节点所有父节点的查找。输出从根节点到最小叶子节点的路径上,各个节点的值,由空格分隔,用例保证最小叶子节点只有一个。给定一个数组存储的二叉树,试求从根节点到最小的叶子节点的路径,路径由节点的值组成。原创 2023-10-23 23:08:48 · 712 阅读 · 0 评论 -
华为OD 叠积木(100分)【java】A卷+B卷
定义一个 dp 数组,dp[i] 表示如果积木为 i 时,最大积木层数。给出一个列表如[[6,7,],[5,4],[3,2]],表示木块的长和宽,当木块的长和宽不大于另个木块的长和宽时,就可以放在上面,此外数组还可以左右翻转。我用夸克网盘分享了「华为OD题库Java(精选50题).zip」,点击链接即可转存。首先对输入的积木进行处理,统一大的做长放第一个位置,小的做宽放第二个位置。自定义排序,所有积木降序排,长度降序,相同则宽度降序。一个二维数组,里面是每个积木的长和宽,可以左右翻转。原创 2023-10-23 23:05:51 · 879 阅读 · 0 评论 -
华为OD 机智的外卖员(100分)【java】A卷+B卷
外卖员每天在大厦中送外卖,大厦共有L层(0<L<=10^5),当他处于第N层楼时,可以每分钟通过步行梯向上达到N+1层,或向下达到N-1层,或者乘坐电梯达到2*N层。给定他所处位置N,以及外卖配送的目的楼层M,计算他送达的最短时间。转移方程为,走步行梯都是dp[i - 1] + 1,走电梯需要判断是偶数层,如果是偶数层,则dp[i / 2] + 1,如果是奇数层,则dp[(i + 1) / 2] + 2,选择走步行梯和电梯时间最短的。初始化的时候,到N层以下需要的时间,都减去相应的楼层,即步行向下。原创 2023-10-23 23:04:08 · 1122 阅读 · 0 评论 -
华为OD 高效的任务规划(200分)【java】A卷+B卷
转移方程:因为第i台机器开始配置并工作必须是前i-1台机器都完成了配置,当前机器之前所有机器的总配置时间用last来表示,则第i台机器完成工作所用的总时间dp[i] = last + machine[i][0] + machine[i][1];随后的 N 行每行两个整数,第一个表示 B(0原创 2023-10-23 23:01:17 · 829 阅读 · 0 评论 -
华为OD 区间交集(200分)【java】A卷+B卷
任意两个给定区间的交集,称为公共区间(如:[1,2],[2,3]的公共区间为[2,2],[3,5],[3,6]的公共区间为[3,5])。公共区间之间若存在交集,则需要合并(如:[1,3],[3,5]区间存在交集[3,3],需合并为[1,5])。[1,3]与[2,4]交集为[2,3],[1,3]与[4,8]、[5,9]没有交集。[1,6]、[2,5]的交集为[2,5],[1,6]、[5,7]的交集为[5,6][2,4]与[4,8]]交集为[4,4]。[1,3]、[2,4]、[4,8]、[5,9] 四个区间。原创 2023-10-21 00:00:21 · 372 阅读 · 0 评论 -
华为OD 打印任务排序(100分)【java】A卷+B卷
然后检查队列余下任务中有没有比A优先级更高的任务,如果有比A优先级高的任务,则将任务A放到队列尾部,否则就执行任务A的打印。优先队列存储一个数组,数组的第一个元素是数值,第二个元素是出现顺序,构建大顶堆,相同元素的按出现顺序排列。接着队列头部任务优先级为3,队列中还有优先级为5的任务,优先级3任务被移到队列尾部;相同元素时,要保证原顺序,原顺序在前的优先级更高,这个就需要优先队列里存储原顺序。输入一行,为每个任务的优先级,优先级之间用逗号隔开,优先级取值范围是1~9。最后优先级为3的任务的序号为2。原创 2023-10-21 00:00:32 · 508 阅读 · 0 评论 -
华为OD 最小数字(100分)【java】A卷+B卷
首先是选择最小的三个数,对整个数组进行排序,复制前三个数为新的数,再对三个数进行排序。给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字)。数组长度超过3,需要选3个元素组成最小数字,21305由21,30,5三个元素组成的数字,为所有组合中最小的数字。由3个元素组成的最小数字,如果数组长度小于3,则选择数组中所有元素来组成最小数字。三个数进行排序的时候,是对String组合进行排序,按组合后首字母的顺序进行排序。原创 2023-10-21 00:00:43 · 366 阅读 · 0 评论 -
华为OD 磁盘容量排序(100分)【java】A卷+B卷
然后是对磁盘的一个排序,还是使用二维数组,对于索引和大小进行排序,小的在前面,相等的索引在前面。例如给定5块盘的容量,1T,20M,3G,10G6T,3M12G9M排序后的结果为20M,3G,3M12G9M,1T,10G6T。磁盘容量m的范围为1到1024的正整数,容量单位v的范围只包含题目中提到的M,G,T三种,换算关系如题目描述。磁盘的容量单位常用的有M,G,T这三个等级,它们之间的换算关系为1T = 1024G,1G = 1024M,例如20M,1T,30G,10G6T,3M12G9M。原创 2023-10-21 00:00:58 · 488 阅读 · 0 评论 -
华为OD 身高体重排序(100分)【java】A卷+B卷
某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号。两个序列,每个序列由n个正整数组成(0 < n原创 2023-10-21 00:01:08 · 480 阅读 · 0 评论 -
华为OD 数组求和(100分)【java】A卷+B卷
我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。最大2个数[100,95],最小2个数[83,64], 输出为342。最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1。第三行输入N,N表达需要计算的最大、最小N个数。数组中数字范围[0, 1000]输出最大N个数与最小N个数的和。第一行输入M, M标识数组大小。第二行输入M个数,标识数组内容。原创 2023-10-21 00:01:21 · 559 阅读 · 0 评论 -
华为OD 最大差(100分)【java】A卷+B卷
我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。题目臭长,纯模拟问题,这道题充分考察了一个字符串分割,提取,计算,拼接,判断。1)不等式系数为double类型,是一个二维数组;3)不等式的目标值为double类型,是一维数组;2)不等式的变量为int类型,是一维数组;前两个不满足条件,所以输出为false。然后计算三个差值中的最大值,取整数部分。判断一组不等式是否满足约束并输出最大差。true 或者 false, 最大差。类型为整数(输出浮点数的整数部分)原创 2023-10-21 00:01:55 · 417 阅读 · 0 评论 -
华为OD 最大社交距离(100分)【java】A卷+B卷
这道题坐的位置是满足最大距离下的最小索引,可以使用TreeSet有序去重的集合来存放已经坐过的位置,第一个进来的,只能坐到位置0,最后一个进来的只能坐到最后一个位置,中间进来的就需要找,离坐下的最远距离的最小索引位置,需要遍历已经坐下的位置,找到中间索引最小的最大距离。座位一排共 N 个座位,编号分别为 [0, N - 1] , 要求员工一个接着一个进入会议室,并且可以在任何时候离开会议室。seat -> 0 , 空在任何位置都行,但是要给他安排索引最小的位置,也就是座位 0。原创 2023-10-21 00:01:32 · 420 阅读 · 0 评论 -
华为OD 整数最小和(100分)【java】A卷+B卷
这道题主要是负号的判断,遇到负号的时候,负号后面跟的数字字符串作为一个整体,才能最小。没有遇到负号的时候,单个字符相加,和最小。所以在flag=true的情况下,把所有数字加入字符串,之后无论遇到其它字符或者再遇到负号,都用sum减去这个整体字符串对应的整数。2)负整数 负号 - 开头,数字部分由一个或者多个0-9组成,如 -0 -012 -23 -00023。输入字符串s,输出s中包含所有整数的最小和。字符串s,只包含 a-z A-Z ±;原创 2023-10-21 00:02:01 · 479 阅读 · 0 评论 -
华为OD 绘图机器(100分)【java】A卷+B卷
给定的横坐标终点值E 以及若干条绘制指令 请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。期间可以通过指令在纵坐标轴方向进行偏移 offsetY为正数表示正向偏移,为负数表示负向偏移。我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。绘图机器的绘图笔初始位置在原点(0,0) 机器启动后按照以下规则来进行绘制直线。首行为两个整数N 和 E 表示有N条指令, 机器运行的横坐标终点值E。通过操作机器最后绘制了如下图形(蓝色为绘制笔绘制的直线)简单的模拟题,模拟计算所围矩形的面积。原创 2023-10-21 00:02:07 · 386 阅读 · 0 评论 -
华为OD k 对元素最小值(100分)【java】A卷+B卷
给定两个整数数组array1 array2,数组元素按升序排列假设从arr1 arr2中分别取出一个元素,可构成一对元素。取第一个数组第0个元素与第二个数组第0个元素组成一个元素[1,1]取第一个数组第1个元素与第二个数组第0个元素组成一个元素[1,1]注意:两对元素对应arr1 arr2的下标是相同的视为同一对元素。现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。arr1,2中的每个元素 0原创 2023-10-21 00:02:15 · 353 阅读 · 0 评论 -
华为OD 停车场车辆统计(100分)【java】A卷+B卷
车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。统计停车场最少可以停多少辆车,返回具体的数目。整型数字字符串,表示最少停车数目。1个卡车占第5、6、7个车位。1个货车占第1、2个车位。1个小车占第1个车位。1个小车占第3个车位。1个小车占第9个车位。原创 2023-10-21 00:02:36 · 421 阅读 · 0 评论 -
华为OD 猴子吃桃(100分)【java】A卷+B卷
孙悟空可以决定他吃蟠桃的速度 K(单位:个/小时),每个小时他会选择一颗蟠桃树,从中吃掉 K 个蟠桃,如果这棵树上的蟠桃数小于 K,他将吃掉这棵树上所有蟠桃,然后这一小时内不再吃其余蟠桃树上的蟠桃。已知蟠桃园有 N 棵蟠桃树,第 i 棵蟠桃树上有 N[i](大于 0)个蟠桃,天兵天将将在 H(不小于蟠桃树棵数)小时后回来。孙悟空喜欢吃蟠桃,一天他乘守卫蟠桃园的天兵天将离开了而偷偷的来到王母娘娘的蟠桃园偷吃蟠桃。第3小时吃4个,第二棵树剩3个,第7小时吃4个,第4棵树剩3个,第4小时吃3个,第二棵树吃完,原创 2023-10-20 22:19:14 · 276 阅读 · 0 评论 -
华为OD 最多团队(100分)【java】A卷+B卷
第二行数组代表每个人的能力,每个元素的取值范围[1, 500000],数组的大小范围[1,500000]用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。且1个人只能参加1个团队, 请计算出最多可以派出多少支符合要求的团队?第三行数值为团队要求的最低能力值,范围[1, 500000]3,5组成一队,1,7组成一队,9自己一个队,故输出3。第一行数组代表总人数,范围[1,500000]原创 2023-10-20 22:14:37 · 195 阅读 · 0 评论 -
华为OD DNA序列(100分)【java】A卷+B卷
G 和 C 的比例(定义为 GC-Ratio )是序列中 G 和 C 两个字母的总的出现次数除以总的字母数目(也就是序列长度)。给定一个很长的 DNA 序列,以及限定的子串长度 N ,请帮助研究人员在给出的 DNA 序列中从左往右找出 GC-Ratio 最高且长度为 N 的第一个子串。ACGT长度为2的子串有AC,CG,GT3个,其中AC和GT2个的GC-Ratio都为0.5,CG为1,故输出CG。数据范围:字符串长度满足 1≤n≤1000,输入的字符串只包含 A/C/G/T 字母。原创 2023-10-20 22:08:50 · 648 阅读 · 0 评论 -
华为OD 字符串消除(100分)【java】A卷+B卷
游戏规则: 输入一个只包含英文字母的字符串, 字符串中的两个字母如果相邻且相同,就可以消除。在字符串上反复执行消除的动作, 直到无法继续消除为止,此时游戏结束。输出最终得到的字符串长度.我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。输入原始字符串str 只能包含大小写英文字母,字母的大小写敏感, str长度不超过100。输出游戏结束后,最终得到的字符串长度。gg可以直接消除 得到空串 长度为0。原创 2023-10-20 22:07:10 · 544 阅读 · 0 评论 -
华为OD 最大嵌套括号深度(100分)【java】B卷
现有一字符串仅由 ‘(’, ‘)’, ‘{’, ‘}’, ‘[’, ']'六种括号组成。我用夸克网盘分享了「华为OD题库Java.zip」,点击链接即可保存。输出括号的最大嵌套深度,若字符串无效则输出 0。0≤字符串长度≤100000。一个只包括 ‘(’, ‘)’, ‘{’, ‘}’, ‘[’, ']'的字符串。②存在未按正确顺序(先左后右)闭合的括号。①任一类型的左右括号数量不相等;有效字符串,最大嵌套深度为3。一个整数,最大的括号深度。原创 2023-10-20 22:01:29 · 318 阅读 · 0 评论