
华为算法题
文章平均质量分 52
lanmaoki
这个作者很懒,什么都没留下…
展开
-
E1-相亲派对(组合)
现在给出所有男生的颜值,以及所有女生的颜值,请你计算可以产生多少种配对。公司开展了一次相亲派对,若男生的颜值和女生的颜值相同,则可以进行配对。第一行输入男生颜值数组。数组长度不大于10000。第二行输入女生颜值数组。数组长度不大于10000。注意:颜值最大不超过100000。输出可以产生多少种配对。原创 2025-03-19 17:56:37 · 310 阅读 · 0 评论 -
E2-走梅花桩(并查集版)
少林寺武僧有一项训练科目就是走梅花桩,现在有 m 行 n 列的梅花桩,每个梅花桩都有一个高度,若相邻梅花桩之间的高度相差为 x,则可以走到相邻梅花桩上。),如果满足条件,则将它们合并,通过查找每个节点的根节点,计算每个根节点所代表集合的大小,最终输出最大大小。少林武僧可以选择任意起始位置,请你计算出少林武僧最多可以走多少个梅花桩。之后 m 行,每行 n 个数,分别表示梅花桩的高度。每次合并操作的时间复杂度为O(1),总的合并操作最多进行。次,因此合并操作的总时间复杂度为O(m * n)。原创 2025-03-19 17:39:42 · 866 阅读 · 0 评论 -
E1-数组的平衡点2(前缀和)
给定一个长度为 n 的数组 nums,若其中存在某个位置 index,使得 [0, index - 1] 范围的元素之积 等于 [index + 1, n - 1] 范围的元素之积,则称 index 位置是数组 nums 的平衡点。请你找出数组 nums 的平衡点位置,若存在多个平衡点位置,则输出最后一个,若不存在平衡点位置,则输出 null。输出数组 nums 的平衡点位置,若存在多个平衡点位置,则输出最后一个,若不存在平衡点位置,则输出 null。输入一个数组 nums,格式请见用例。原创 2025-03-18 16:33:32 · 400 阅读 · 0 评论 -
E1-倒 N 形走位(模拟打印矩阵)
有一个 n 行不定列的矩阵,请你从矩阵左上角位置,按照倒倒 N 形走位,依次填入 1 ~ x 数字。输入一行,两个正整数 n 和 x,其中 n 不大于 1000。输出结果矩阵,格式见用例。原创 2025-03-18 16:16:33 · 419 阅读 · 0 评论 -
E1-最远距离(stl使用)
给定一个数组,请你找出数组中相同元素之间的最远距离。若数组中不存在相同元素,则输出 null。输入一个数组,数组长度不超过 10000。索引0的元素和索引6的元素相同,距离 6。索引1的元素和索引7的元素相同,距离 6。输出数组中相同元素的最远距离。原创 2025-03-16 17:44:26 · 367 阅读 · 0 评论 -
E1-货仓选址问题(求中位数)
假设在一条数轴上有多个商店,需要在数轴上建立一个货仓,使得货仓到每家商店的距离之和最小。输入一个数组,数组元素是各个商店的位置。若有多个,则从小到大输出。请输出货仓的选值位置。原创 2025-03-16 17:33:53 · 225 阅读 · 0 评论 -
F4拉力赛(滑动窗口)
第一行输入一个数组,数组元素是环形公路上的广告牌编号,数组头尾元素可以认为相邻。数组长度最大 1000000。数组元素是正整数不大于100。F4拉力赛在一个环形公路上举行,主办方为了拉来更多赞助,在环形公路每间隔一米就设立一块广告牌。假设赛车的速度为 x 米/秒,请问赛车在一秒内经过最多数量的广告牌编号是什么?第二行输入赛车速度 x 米/秒。用例保证 x 不大于数组长度。若有多个最多数量的广告牌编号,则输出最小的。请输出赛车一秒内经过最多数量的广告牌编号。原创 2025-03-15 20:48:30 · 392 阅读 · 0 评论 -
E1-15.智能成绩表(自定义排序)
第 3 行开始的 n 行,每行包含一个学生的姓名和该生 m 个科目的成绩(空格隔开)输出一行,按成绩排序后的学生名字,空格隔开。成绩相同的按照学生姓名字典顺序排序。小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?按shuxue成绩排名,依次是xiaohua、fangfang、minmin。第n+2行,输入用作排名的科目名称。若科目不存在,则按总分进行排序。第 1 行输入两个整数,学生人数 n 和科目数量 m。第 2 行输入 m 个科目名称,彼此之间用空格隔开。原创 2025-03-11 20:13:35 · 330 阅读 · 0 评论 -
E1-92.MVP争夺战(dfs)
在星球争霸篮球赛对抗赛中,最大的宇宙战队希望每个人都能拿到MVP,MVP的条件是单场最高分得分获得者。可以并列所以宇宙战队决定在比赛中尽可能让更多队员上场,并且让所有得分的选手得分都相同,然而比赛过程中的每1分钟的得分都只能由某一个人包揽。输入第一行为一个数字 t ,表示为有得分的分钟数。输出有得分的队员都是MVP时,最少得MVP得分。第二行为 t 个数字,代表每一分钟的得分 p,样例解释 一共 4 人得分,分别都是 6 分。// ps: 目前还有 三个样例爆了。原创 2025-03-11 20:04:24 · 227 阅读 · 0 评论 -
E1-106.租车骑绿道(贪心)
部门组织绿岛骑行团建活动。租用公共双人自行车,每辆自行车最多坐。给出部门每个人的体重,请问最多需要租用多少双人自行车。个数字,代表每个人的体重,体重都小于等于自行车限重。,分别代表自行车限重,部门总人数。最小需要的双人自行车数量。原创 2025-03-10 16:34:37 · 399 阅读 · 0 评论 -
E2-76.不含101的数(数位DP)
区间 [1,10] 内, 5 的二进制表示为 101 ,10的二进制表示为 1010 ,因此区间 [ 1 , 10 ] 内有 10−2=8 个不含 101的数。区间 [10,20] 内,满足条件的数字有 [12,14,15,16,17,18,19] 因此答案为 7。的数,也就是:将数字用二进制表示,不能出现。小明在学习二进制时,发现了一类不含。输出的唯一一行包含一个整数,表示在。,请问这个区间包含了多少个不含。输入的唯一一行包含两个正整数。区间内一共有几个不含。现在给定一个整数区间。原创 2025-03-10 16:22:05 · 364 阅读 · 0 评论 -
E1-110.完美走位(滑动窗口)
假设玩家每按动一次键盘,游戏任务会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏任务必定会回到原点,则称此次走位为完美走位。),请通过更换其中一段连续走位的方式使得原走位能够变成一个完美走位。其中待更换的连续走位可以是相同长度的任何走位。对每个可能的窗口,检查其是否能够通过修改字符使得每个字符的出现次数变得平衡。:如果当前窗口满足条件,计算窗口的大小,并更新最小窗口大小。请返回待更换的连续走位的最小可能长度。输出为待更换的连续走位的最小可能长度。原创 2025-03-10 15:50:54 · 955 阅读 · 0 评论 -
E1-95字符串重新排序
1、单词内部调整:对每个单词字母重新按字典序排序。请输出处理后的字符串,每个单词以一个空格分隔。1)统计每个单词出现的次数,并按次数降序排列。输出处理后的字符串,每个单词以一个空格分隔。3)次数和单词长度均相同,按字典升序排列。包括以空格分隔的若干个单词,请对。2)次数相同,按单词长度升序排列。原创 2025-03-10 15:31:36 · 171 阅读 · 0 评论 -
E1-68.寻找链表的中间结点(快慢指针)
中间结点保存的数据。如果有两个中间结点,则输出第二个中间结点保存的数据。是该结点保存的整数数据(0 ≤ Data ≤ 10^8),如果有两个中间结点,则输出第二个中间结点保存的数据。第一行给出链表首结点的地址、结点总个数正整数。不会成环,但会存在部分输入结点不属于链表。对每个测试用例,在一行中输出。已确保输入的结点所构成的链表。中间结点保存的数据。原创 2025-03-10 15:22:56 · 280 阅读 · 0 评论 -
E2-8.字符串拼接(回溯)
给定 M(0 < M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)拼接成长度为 N(0 < N ≤ 5)的字符串,要求相同的字符不能相邻,计算出给定的字符列表能拼接出多少种满足条件的字符串,给定的字符为a,b,c,结果字符串长度为1,可以拼接成a,b,c,共3种。给定的字符为dde,结果字符串长度为2,可以拼接成de,ed,共2种。给定的字符列表和结果字符串长度,中间使用空格(" ")拼接。输入非法或者无法拼接出满足条件的字符串则返回0。满足条件的字符串个数。原创 2025-03-08 16:05:34 · 355 阅读 · 0 评论 -
E2-17.数字游戏(前缀和)
第一组小明牌的数字为7,再发了6张牌。第1、2两张牌教字和为14,可以整除7,输出1,第二组小明牌的教字为11,再发了10张牌,这10张牌数字和为10,无法整除11,输出0。需要小明判断,后n张牌中,是否存在连续的若干张牌,其和可以整除小明手中牌上的数字。对每组输入,如果存在满足条件的连续若干张牌,则输出1;输入数据有多组,每组输入数据有两行,输入到文件结尾结束。第二行有n个数,代表后续发的n张牌上的数字,以空格隔开。第一张给小明,后n张按照发牌顺序排成连续的一行。系统发1+n张牌,每张牌上有一个整数。原创 2025-03-08 15:42:20 · 168 阅读 · 0 评论 -
E2-28.火锅(贪心)
入职后,导师会请你吃饭,你选择了火锅。火锅里会在不同时间下很多菜。不同食材要煮不同的时间,才能变得刚好合适。你希望吃到最多的刚好合适的菜,但你的手速不够快,用m代表手速,每次下手捞菜后至少要过m秒才能再捞(每次只能捞一个)。那么用最合理的策略,最多能吃到多少刚好合适的菜?原创 2025-03-07 16:27:03 · 293 阅读 · 0 评论 -
E2-9.模拟目录管理功能
在根目录创建一个abc的目录并进入abc目录中查看当前目录路径,输出当前路径/abc/。实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。命令行数限制100行以内,目录名称限制10个字符以内。输入 N 行字符串,每一行字符串是一条命令。输出最后一条命令运行结果字符串。原创 2025-03-07 15:59:33 · 401 阅读 · 0 评论 -
E2-13.找单词(dfs)
输出一个位置下标字符串,拼接格式为:第1个字符行下标+”,”+第1个字符列下标+”,”+第2个字符行下标+”,”+第2个字符列下标…+”,”+第N个字符行下标+”,”+第N个字符列下标。给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下标字符串,如果找不到返回字符串“N”。ACCESS分别对应二维数组的[0,0] [0,1] [0,2] [1,2] [2,2] [2,3]下标位置。第N+2行为待查找的字符串,由大写字符组成。原创 2025-03-06 17:05:16 · 227 阅读 · 0 评论 -
E2-6.项目排期(二分 回溯)
共有两位员工,其中一位分配需求 6 2 7 7 3 2 1 共需要28天完成,另一位分配需求 9 3 11 4 共需要27天完成,故完成所有工作至少需要28天。项目组共有 N 个开发人员,项目经理接到了 M 个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。假定各个需求直接无任何先后依赖关系,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。第一行输入为 M 个需求的工作量,单位为天,用逗号隔开。第二行输入为项目组人员数量N。最快完成所有工作的天数。原创 2025-03-06 16:39:49 · 257 阅读 · 0 评论 -
E2-5.跳格子3(双端队列)
输出最大得分数,小明从起点score[0]开始跳,第一次跳score[1],第二次跳到score[3],第三次跳到score[5],因此得到的最大的得分是score[0] + score[1] + score[3] + score[5] = 14。从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点 score[n-1] 时,能得到的最大得分。每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7],第二行输入每个格子的分数 score[i]原创 2025-03-06 16:03:23 · 251 阅读 · 0 评论 -
E2-3.二叉树计算
左子树表示该节点左侧叶子节点为根节点的一颗新树;右子树表示该节点右侧叶子节点为根节点的一颗新树。请由该二叉树生成一个新的二叉树,它满足其树中的每个节点将包含原始树中的左子树和右子树的和。2行整数,第1行表示二叉树的中序遍历,第2行表示二叉树的前序遍历,以空格分割。1行整数,表示求和树的中序遍历,以空格分割。原创 2025-03-06 15:47:23 · 278 阅读 · 0 评论 -
E2-7.跳马(BFS)
注:允许不同的马在跳的过程中跳到同一位置,坐标为(x,y)的马跳一次可以跳到的坐标为:(x+1, y+2),(x+1, y-2),(x+2, y+1),(x+2, y-1),(x-1, y+2),(x-1, y-2),(x-2, y+1),(x-2, y-1),的格点上,但是不可以超出棋盘范围。接下来输入 m 行 n 列的网格图棋盘,如果第 i 行,第 j 列的元素为 "." ,代表此格点没有棋子,如果为数字 k(1 ≤ k ≤ 9),代表此格点存在等级为 k 的“马”只有一匹马,不需要跳动。原创 2025-03-05 17:24:37 · 994 阅读 · 0 评论 -
E2-2.电脑病毒感染(Dijkstra)
一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。如图:path[i] = {i, j, t} 表示:电脑 i->j,电脑 i 上的病毒感染 j,需要时间 t。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1。给定一个数组 times 表示一台电脑把相邻电脑感染所用的时间。第一个参数:局域网内电脑个数N,1 ≤ N ≤ 200;第三个 2 1 1 表示2->1时间为1。原创 2025-03-05 16:59:14 · 230 阅读 · 0 评论 -
E2-1.爱吃蟠桃的孙悟空(二分)
孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。其中数字通过空格分割,N、H为正整数,每颗树上都有蟠桃,且 0 < N < 10000,0 < H < 10000。请返回孙悟空可以在 H 小时内吃掉所有桃子的最小速度 K(K为整数)。第一行输入为 N 个数字,N 表示桃树的数量,这 N 个数字表示每颗桃树上蟠桃的数量。原创 2025-03-05 16:45:41 · 248 阅读 · 0 评论 -
E1-9.字符串分割(字符串处理)
给定一个非空字符串S,其被N个‘-’分隔成N+1的子串,给定正整数K,要求除第一个子串外,其余的子串每K个字符组成新的子串,并用‘-’分隔。反之,如果它含有的大写字母比小写字母多,则将这个子串的所有小写字母转换为大写字母;大小写字母的数量相等时,不做转换。对于新组成的每一个子串,如果它含有的小写字母比大写字母多,则将这个子串的所有大写字母转换为小写字母;输入为两行,第一行为参数K,第二行为字符串S。输出转换后的字符串。原创 2025-03-04 21:18:49 · 265 阅读 · 0 评论 -
E1-8.APP 防沉迷系统(逻辑思维)
题目具体见:手机App防沉迷系统 - 题目详情 - Hydro。原创 2025-03-04 20:27:30 · 188 阅读 · 0 评论 -
E1-3.靠谱的车(按位处理)
程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。给出计费表的表面读数,返回实际产生的费用。原创 2025-03-03 21:28:57 · 337 阅读 · 0 评论 -
E1-1.流浪地球(逻辑)
地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”。当然最终所有的发动机都会被启动。哪些发动机最晚被启动呢?流浪地球计划在赤道上均匀部署了 N 个转向发动机,按位置顺序编号为 0 ~ N。接下来共 E 行,每行都是两个数字 T 和 P,中间有空格。第二行 N 个数字,中间有空格,以回车结束。第一行两个数字 N 和 E,中间有空格。第一行一个数字 N, 以回车结束。原创 2025-03-03 20:06:25 · 199 阅读 · 0 评论 -
华为OD算法真题开练!!!
【代码】华为OD算法真题开练!!!原创 2025-02-26 21:51:23 · 140 阅读 · 0 评论