塔子哥学算法
这个作者很懒,什么都没留下…
展开
-
华为OD机试【2024D卷】真题目录+算法分类+在线OJ+通过率+视频讲解
2024华为OD C卷专栏+OJ权限(¥59.9)提供OJ环境在线刷题和验题2024华为OD C卷专栏(¥49.9)支持答疑,购买后可以私信博主,获取联系方式,提供答疑购买任意专栏,即可添加博主vx:utheyi,获取答疑服务OJ权限获取首页 - CodeFun2000。原创 2023-11-30 14:28:44 · 33519 阅读 · 14 评论 -
【2024华为OD-C卷-第三题- 学生重新排队】100%通过率(JavaScript&Java&Python&C++&Go)
有 n 个学生排成一排,学生编号分别是 1 到 n,其中 n 是 3 的整倍数。为了便于同组学生交流,老师决定将小组成员安排到一起,即同组成员彼此相连,同组任意两个成员之间不能有其它组的成员。老师可以调整队伍,每次可以将任何一名学生移动到队伍的任意位置,这被计为一次调整。根据给定的分组顺序,将每个学生的 下标 / 3 即为当前学生对应的组的编号。将 3 调整到 4 之前,队列变为:7 9 8 5 6 3 4 2 1。学生分组情况:[7 8 9] [4 2 1] [3 5 6]原创 2024-08-06 21:11:12 · 270 阅读 · 1 评论 -
【2024华为OD-C卷-第二题-计算三叉搜索树高度】100%通过率(JavaScript&Java&Python&C++)
查找的规则是: 1.如果数小于节点的数减去500,则将数插入节点的左子树。// 假设创建的节点node是当前节点cur的子节点,则node节点高度值=cur节点高度值+1。i++) { // 插入剩下的数字。2.如果数大于节点的数加上500,则将数插入节点的右子树 3.否则,将数插入节点的中子树。arr = list(map(int, input().split())) # 数组。// 如果数小于节点的数减去500,则将数插入cur节点的左子树。// 如果数大于节点的数加上500,则将数插入节点的右子树。原创 2024-03-08 14:54:07 · 1393 阅读 · 1 评论 -
【2024华为OD-C卷-第三题-数字排列】(JavaScript&Java&Python&C++)
给出的数字:1, 4, 8, 7 则可以拼接的数字为: 1, 4, 7, 8, 14, 17, 18, 41, 47, 48, 71, 74, 78, 81, 84, 87, 147, 148, 178...(省略后面的数字) 因此,第 n(即8)个数字为 41。可以构成的数字按从小到大排序为:1, 4, 7, 8, 14, 17, 18, 41, 47, 48, 71, 74, 78, 81, 84, 87, 147, 148, 178...(省略后面的数字)故第 8 个数字为 41。原创 2024-03-05 21:54:17 · 786 阅读 · 2 评论 -
【2023华为od-C卷-第二题-测试用例执行计划】100%通过率(JavaScript&Java&Python&C++)
根据上述排序规则,对于每一个编号,根据其给定的优先级和数组每个元素的下标,对他的优先级进行求和,求和之后,按照题目要求的排序规则进行排序即可。原创 2023-12-26 10:00:00 · 2300 阅读 · 2 评论 -
【2024华为OD-C卷-第三题-信道分配】(JavaScript&Java&Python&C++)
当有信道不够的情况下,就得使用后面比较大的位数来顶替,我们可以标记现在是否是信道不够的情况,不够的话,当前就得考虑是否额外增加目前一个比较大的信道来替换前面所有使用的信道。如果可以使用一个大信道,前面使用的小的信道可以都归还来避免浪费,所以需要记录一下之前使用的信道数量。因为一个大的信道肯定比前面所有的信道相加都更大,比如$ 2^3 > 2^0 + 2^1 + 2^2 $,所以信道不够就看当前枚举的位是否有额外的信道可以使用。只要有信道就借,借不了再往前借,如果前面都不够借,就说明至少当前的信道不够用。原创 2024-01-23 15:53:30 · 1224 阅读 · 1 评论 -
【2023华为OD-C卷-第三题-反射计数】100%通过率(JavaScript&Java&python&C++)
1个物体从给定的初始位置触发,在给定的速度下进行移动,遇到矩阵的边缘则发生镜面反射无论物体经过 0 还是 1,都不影响其速度。,按照上述方式模拟即可求解,大家不理解的可以画一个图便于理解,注意需要特判一下起始位置是否为1。矩阵以左上角位置为[0,0](列(x),行(行),例如坐标为。2.时间的最小单位为1,不考虑小于 1个时间单位内经过的点。反射的这个过程,我们可以考虑为方向的转变,比如当前坐标为。其中w,h为矩阵的宽和高x;进过1的个数,需要考虑起始位置是否为1。sx,sy为初始速度t为经过的时间。原创 2024-01-12 09:33:49 · 796 阅读 · 2 评论 -
【2023华为OD-C卷-第三题-最大社交距离】100%通过率(JavaScript&Java&Python&C++)
长度为1,说明只有一个人落座,根据情况1可知,这个人一定在索引0的位置上,因此当前这个人应该落座在索引位置为。,那么我们应该枚举所有的空位,根据题意去求一个位置,使得这个位置到其他落座的人的最小值最大,那么由于。长度为0,说明没有人落座,那么按照题目要求,应该落座在索引0的位置上。, 空在任何位置都行,但是要给他安排索引最小的位置,也就是座位。最后进来的员工,他会坐在第几个位置,如果位置已满,则输出。,要和旁边的人距离最远,应该是坐到中间,也就是座位。,一边枚举一边更新即可,最后将对应的位置。原创 2024-01-11 10:00:00 · 1198 阅读 · 2 评论 -
【2023华为OD-C卷-第三题-中庸行者】100%通过率(JavaScript&Java&Python&C++)
一个整数,代表中庸行者在本地图内,能连续移动的最大次数。,即可添加博主vx:utheyi,获取答疑/辅导服务。请给出中庸行者在本地图内,能连续移动的最大次数。中庸行者只能上坡或者下坡,不能走到高度相同的点。不允许连续上坡或者连续下坡,需要交替进行。第一行两个数字,分别为行数和每行的列数。每个位置只能经过一次,不能重复行走。一个只包含整数的二维数组。原创 2024-01-10 10:00:00 · 1032 阅读 · 2 评论 -
【2023华为OD-C卷-第三题-找单词】100%通过率(JavaScript&Java&Python&C++)
比LeetCode这道题多了一个保存路径,首先,我们可以定义一个长度为4的数组来表示上下左右四个方向,然后我们可以判断分别从每一个位置为起点,是否能够构成一个路径使得和目标字符串相等,我们可以一边走一边存储当前的路径,比如对于C++选手可以维护一个。拼接格式为:第1个字符行下标+“”,”+第1个字符列下标+“,”+第2个字符行下标+”,“+第2个字符列下标+…给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,则按字符串的字符顺序输出字符串每个字符所在单元格的位置下。输出一个位置下标字符串。原创 2024-01-09 10:00:00 · 1097 阅读 · 1 评论 -
【2023华为OD-C卷-第二题-小朋友来自多少小区】100%通过率(JavaScript&Java&Python&C++)
如果两个小朋友在同一个小区,则他们对应的朋友数量应该相同,因此我们可以对朋友数量相同的小朋友分为一组,尽可能分的组足够少,看能分多少组。的朋友,但是他们可能还有别的朋友跟他在一个小区,因此根据这7个小朋友至少需要小朋友的数量为10个。个小朋友与自己同一小区,则这些小朋友只能是另外一个小区的。第一个小朋友反馈有两个小朋友和自己同一小区,即此小区有。第二个小朋友反馈有两个小朋友和自己同一小区,即此小区有。这两个小朋友,可能是同一小区的,且此小区的小朋友只有。为了尽可能的使得最终的答案最小,我们可以将小朋友的。原创 2024-01-09 10:00:00 · 2507 阅读 · 3 评论 -
【2023华为OD-C卷-第一题-数组去重和排序】100%通过率(JavaScript&Java&Python&C++)
首先,我们可以按照规则对数组进行读取,然后给每一个第一次出现的数字一个编号值,这个可以使用哈希表来存储,keykeykey为元素值,valvalval为对应的数组下标,然后我们利用哈希表对数组进行去重之后,将最终的数字按照哈希表中valvalval的大小进行升序排列即可。原创 2024-01-08 10:21:48 · 1315 阅读 · 0 评论 -
【2023华为od-C卷-第三题-找城市】100%通过率(JavaScript&Java&Python&C++)
人一组,即分组相队顺序,现在要调整站位,使同一组的人站在一起,组与组之间的顺序无要求,求将初始排队顺序变为分组排队顺序的最少调整次数。当我们把所有的2连都弄成3连后,后续可能会出现1连的情况,因此,我们对于这种情况,我们需要操作两次,让其中任意一个1连变为3连。我们知道3个连在一起的不用动,那么我们贪心的先动2个再一起,将另一个不再一起的加进去,此时需要操作1次。然后1连变为3连时,可能会产生新的2连或者3连,因此,需要继续2连和3连判断。) 站成一排形成初始排队项,然后给定一人分组清单,每。原创 2024-01-07 22:12:56 · 1597 阅读 · 2 评论 -
【2023华为od-C卷-第三题-数据单元的变量替换】(JavaScript&Java&Python&C++)
每个单元格的内容包含字母和数字,以及用分隔的单元格引用,例如: 表示引用的第一个单元的值。输出所有单元格展开后的内容,单元格之间用",“分隔,输入内容出现错误时,输出字符串”因为引用关系的原因,必须先将被引用的计算出来,才知道当前引用部分的值,符合拓扑结构。格式的数据文件中包含单元格引用的内容替换为对应的单元格内容的实际值。引用单元格的位置不受限制,允许排在后面的单元格被排在前面的单元格引用。,替换时,将第二个数据单元的内容替代 的位置,并与其他内容合并。C单元格:yd。原创 2024-01-08 09:00:00 · 1708 阅读 · 3 评论 -
【2023华为od-C卷-第三题-启动多任务排序】100%通过率(JavaScript&Java&Python&C++)
本题我们把依赖关系看为图论中的建边,A依赖与B相当于B向A连了一条有向边,对于拓扑排序来说,我们需要从所有入度为0的点(也就是所谓的根节点)出发,跑一遍经典的拓扑排序即可,注意,本题有一个特殊的地方:同时有多个任务要执行,则根据任务名称字母顺序排序,因此我们还需要对建的领接表进行排序,这样就可以保证按照字母顺序进行排序输出了。例如: B任务依赖A任务,C任务依赖A任务,D任务依赖B任务和C任务,同时,D任务还依赖E任务。那么执行任务的顺序由先到后是:A任务,E任务,B任务,C任务,D任务。原创 2024-01-07 22:03:56 · 1286 阅读 · 0 评论 -
【2023华为od-C卷-第三题-小朋友最少调整次数】100%通过率(JavaScript&Java&Python&C++)
人一组,即分组相队顺序,现在要调整站位,使同一组的人站在一起,组与组之间的顺序无要求,求将初始排队顺序变为分组排队顺序的最少调整次数。当我们把所有的2连都弄成3连后,后续可能会出现1连的情况,因此,我们对于这种情况,我们需要操作两次,让其中任意一个1连变为3连。我们知道3个连在一起的不用动,那么我们贪心的先动2个再一起,将另一个不再一起的加进去,此时需要操作1次。然后1连变为3连时,可能会产生新的2连或者3连,因此,需要继续2连和3连判断。) 站成一排形成初始排队项,然后给定一人分组清单,每。原创 2024-01-07 14:02:40 · 1849 阅读 · 2 评论 -
【2023华为OD-C卷-第三题-伐木工】100%通过率(JavaScript&Java&Python&C++)
我们可以贪心地考虑:为了让切割方案最少,再均为最优解的情况下,我们一定是尽可能将当前的木头切割的次数最少,即我们要让切割的每一个部分尽可能的长,因此我们可以。米长的树木,伐木工切割成不同长度的木材后进行交易,交易价格为每根木头长度的乘积。,但方式二,伐木工多切割一次,增加了切割成本却卖了一样的价格,因此并不是最优收益。,省去切割成本,直接整根树木交易,为。米长的树木,伐木工不需要切割为。米长的树木,伐木工不切割,为。,则不切割的收益是最大的,收益为。米长的树木,伐木工切割为。所有的切割情况,来取最大值。原创 2024-01-06 09:30:00 · 1747 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-Wonderland】100%通过率(JavaScript&Java&Python&C++)
根据售票价格数组和游玩日期数组给出的信息,发现每次去玩的时候买一张一日票是最省钱的,所以小王会买。小王在第10日买了一张三日票,小王可以在第10日、第11日和第12日进行无限制地游玩。现在,请您根据给出地售票价格数组和小王计划游玩日期数组,返回游玩计划所需要地最低消费。每种售票方式的价格由一个数组给出,每种票据在票面时限内可以无限制地进行游玩。天前30天购买一日票,对应的开销为。天前三天购买三日票,对应的开销为。天前七天购买一日票,对应的开销为。天当天购买一日票,对应的开销为。完成游玩计划的最低消费。原创 2024-01-06 09:30:00 · 3458 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-字符串拼接】100%通过率(JavaScript&Java&Python&C++)
比如给定的字符串是"abba",要求我们生成长度为2的两个字符,那其实只有两种情况:“ab"和"ba”,因此需要去除冗余的"ab"和"ba",就需要利用到一些去重的技巧,具体可以参考下面代码。计算出给定的字符列表能拼接出多少种满足条件的字符串,输入非法或者无法拼接出满足条件的字符串则返回。因为给定的字符串中有重复的字符,因此我们需要对字符串进行排序,然后做一个去重操作。本题在上面这道LeetCode的题目上,增加了两个条件:构成的新字符串的长度为。的字符串,要求相同的字符不能相邻。原创 2024-01-05 09:00:00 · 1824 阅读 · 1 评论 -
【2023华为OD-C卷-第三题-中文分词模拟器】100%通过率(JavaScript&Java&Python&C++)
llovechina”, 假设分词结果[i,ilove,lo,love,ch,china,lovechina],则输出[ilove,china]给定一个连续不包含空格的字符串,该字符串仅包含英文小写字母及英文标点符号(逗号、 分号、句号),同时给定词库,对该字符串进行精确分词。即"ilovechina" ,不同词库可分割为",love,china" ,“ilove,china” ,不能分割出现重叠。给定"abc" , 要拆成"ab",“c” , 而不是"a",“b”,“c”。这一后缀是否能被组成出来。原创 2024-01-05 09:00:00 · 1630 阅读 · 1 评论 -
【2023华为OD-C卷-第三题-跳马】100%通过率(JavaScript&Java&Python&C++)
首先我们考虑,如果只有一个马,那肯定是不需要移动的,因此对应的最小步数为0,如果是两个马,我们可以对这两个马分别跑一遍BFS,求这两个马到棋盘上每个点的最小距离(有的点受限于。步(走的方式与象棋中“马”的规则一样,不可以超出棋盘位置),问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出。马是象棋(包括中国象棋和国际象棋)中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格,然后再斜着走一个对角线,可进可退,可越过河界,俗称马走“日”字。只有一匹马,不需要跳。原创 2024-01-04 09:00:00 · 1522 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-篮球游戏】(JavaScript&Java&Python&C++)
幼儿园里有一个放倒的圆桶,它是一个线性结构,允许在桶的右边将篮球放入,可以在桶的左边和右边将篮球取出,每个篮球有单独的编号,老师可以连续放入一个或多个篮球,小朋友可以在桶左边或右边将篮球取出,当桶只有一个篮球的情况下,必须从左边取出。后,队列中仍然存在篮球,或者队列中篮球的顺序不符合小朋友的期望,说明无法按照小朋友的希望顺序取出篮球,输出 “No”;对于每个篮球的取出序列,如果确实可以获取,就返回取出的方式顺序,如果无法获取则打印":篮球的取出顺序依次为"右、左、右、右、右、左、左"。原创 2024-01-04 09:00:00 · 1600 阅读 · 0 评论 -
【2023华为OD-C卷-第二题-多段线数据压缩】100%通过率(JavaScript&Java&Python&C++)
如果超过2个点,则我们可以考虑两两之间构成的每一个线段,如果有线段共线,那么则可以去除先出现的点的坐标,即实现了题目要求的去冗余。比如(a1,b1)=(4,6),(a2,b2)=(6,9),则三个点是共线的,因为归一化之后的向量均为(2,3)。比如有三个点的坐标分别为(x1,y1),(x2,y2),(x3,y3),如何判断三个点共线。现在,请根据输入的包含有冗余数据的多线段坐标列表,输出其最简化的结果。首先,如果最终只有1个点或者2个点的坐标,那么直接输出这两个点即可。对于每个坐标点,计算前两个点的差值。原创 2024-01-02 10:00:00 · 1604 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-运输时间】100%通过率(JavaScript&Java&Python&C++)
速度快的车追上前车后,只能以前车的速度继续行驶,求最后一车辆到达目的地花费的时间。对于第二辆车1,他的前面有第一辆车0阻挡,因此他到达终点的时间需要分情况讨论。辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为。首先,对于第一辆车0,他的前面没有车,因此它到达终点的时间。因此根据上述情况分类讨论模拟即可,具体可以参考下面代码。,即可添加博主vx:utheyi,获取答疑/辅导服务。,分别代表车辆数和到终点的距离,以空格分隔。时出发的车,达到目的地花费。小时出发,比如第一辆车。,代表每辆车的速度。原创 2024-01-02 10:00:00 · 1464 阅读 · 3 评论 -
【2023华为OD-C卷-第三题-寻找最优的路测线】100%通过率(JavaScript&Java&Python&C++)
满足条件,可以让二分边界往右收缩,否则,则说明不满足条件,可以让二分边界往左收缩,具体可以参考下面代码,代码的注释很详细。首先,由于路径的优劣是按照路径中经过的最小权值决定的,因此我们可以考虑使用二分查找去缩小边界。评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。,然后使用DFS去查询,是否有一条从起点到终点路径,使得经过的点的权值都。第三行开始,每一行表示栅格地图一行的信号值,每个单元格的数值为。原创 2024-01-01 19:40:16 · 2041 阅读 · 10 评论 -
【2023华为OD-C卷-第三题-田忌赛马】100%通过率(JavaScript&Java&Python&C++)
由于数组的长度范围比较小,最多只有10,因此可以使用全排列算法,去枚举出。,然后输出对应的最优解的个数。不熟悉全排列算法的朋友可以先去学习一下。数组的所有排列情况,然后对每一个排列情况去枚举有多少个数字位置满足。,即可添加博主vx:utheyi,获取答疑/辅导服务。原创 2024-01-01 18:19:16 · 1632 阅读 · 3 评论 -
【2023华为OD-C卷-第三题-贪吃的猴子】100%通过率(JavaScript&Java&Python&C++)
因为每一次只能从左边或者右边取,因此最终猴子取出的左边元素与右边元素相连一定是一段连续的区间,那么我们可以假设先从最左端取。一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。,但是,从行末尾获取能获取到最优的策略,后面可以直接得到香蕉根数目。第一次获取香蕉,无论是从行的开头或者末尾获取,得到的香蕉根数目为。第一次获取香蕉为行的开头,第二次获取为行的末尾,因此最终根数为。猴子获取香蕉,每次都只能从行的开头或者末尾获取,并且只能获取。个的情况,那么相应的,右边就需要取。原创 2023-12-31 10:00:00 · 1772 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-亲子游戏】100%通过率(JavaScript&Java&Python&C++)
游戏规则是妈妈必须在最短的时间(每个单位时间只能走一步)到达宝宝的位置,路上的所有糖果都可以拿走,不能走障碍物的格子,只能上下左右走。本题是一道经典的使用BFS算法求最短路的题目,但因为到达终点的最短路径可能不止一条,因此需要维护一个数组。请问妈妈在最短到达宝宝位置的时间内最多拿到多少糖果(优先考虑最短时间到达的情况下尽可能多拿糖果)。的格子地图上,宝宝和妈妈抽签决定各自的位置,地图上每个格子有不同的糖果数量,部分格子有障碍物。输出妈妈在最短到达宝宝位置的时间内最多拿到多少糖果,行末无多余空格。原创 2023-12-31 10:00:00 · 1688 阅读 · 0 评论 -
【2023华为OD-C卷-解密犯罪的时间】100%通过率(JavaScript&Java&Python&C++)
如果他的时间超过了24h,或者分钟超过了60mins,则说明当前序列不合法,我们通过这种方式筛选完所有的合法序列之后,按照时间的先后顺序从小到大进行排序,然后找到当前时间在数组中的位置,并输出当前位置的下一个位置,如果当前序列在数组中已经是最后一个位置了,则输出数组中的第一个位置。由于总共只有四位数字,因此我们可以直接使用DFS枚举所有的排列情况,注意数字可以重复选用,因此最多可能的答案就是。解密规则为:利用当前出现过的数字,构造下一个距离当前时间最近的时刻,则该时间为可能的犯罪时间。原创 2023-12-30 10:00:00 · 1483 阅读 · 4 评论 -
【2023华为OD-C卷-小明找位置】100%通过率(JavaScript&Java&Python&C++)
小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。原创 2023-12-30 10:00:00 · 1358 阅读 · 0 评论 -
【2023华为OD-C卷-第三题-员工派遣】100%通过率(JavaScript&Java&Python&C++)
的值越大,可以选择的数字数量就越多,其实是越容易满足条件的,反之则越不容易满足条件,因此我们可以使用二分答案的思想去枚举。时是否满足条件,然后再对二分边界进行收缩。具体可以参考下面代码。,即可添加博主vx:utheyi,获取答疑/辅导服务。对于第三种数字,不能被派遣到任意一方,所以是没用的。然后枚举的时候根据上述公式和判断原则去判断枚举到。某公司部门需要派遣员工去国外做项目。我们分别记每一种数字出现的次数为。来说,分配不了任何一个国家,对于。部门每个员工有一个员工号。我们可以把问题转化为。原创 2023-12-29 10:00:00 · 1926 阅读 · 5 评论 -
【2023华为OD-C卷-第三题-项目排期】(JavaScript&Java&Python&C++)
首先,我们分析答案是否满足单调性:如果天数越大,就越容易满足条件,如果天数越小,就越不容易满足条件,因此是具备单调性的,可以使用二分答案求解。假定各个需求直接无任何先后依赖关系,请设计算法帮助项目经理进行工作安排,使整个项目能用最少的时间交付。个独立的需求,每个需求的工作量不同,且每个需求只能由一个开发人员独立完成,不能多人合作。天内完成所有的任务,其实就是看能否把这些任务分成至多。个需求的工作量,单位为天,用逗号隔开。个需求,每个需求的工作量分别为。最快完成所有工作的天数,天完成,另一位分配需求。原创 2023-12-29 10:00:00 · 1633 阅读 · 6 评论 -
【2023华为OD-C卷-第三题-符号运算】(JavaScript&Java&Python&C++)
这种运算优先级比较高的运算符,因此需要使用一个哈希表去记录上述三个运算符的优先级,然后根据优先级的顺序计算,遇到左括号的时候入栈,遇到右括号的时候计算括号内所有表达式的值即可,一边去遍历一边计算,具体可以参考下面代码细节,Python选手可以直接使用。,因此需要使用两个栈,一个栈来存运算符,另一个栈来存储操作数,由于存在。,数字可能超过两位,可能带有空格,没有负数;用例输入一定合法,不会出现括号匹配的情况。给定一个表达式,求其分数计算结果。其实就是计算表达式的值,运算符有。字符串格式的表达式,仅支持。原创 2023-12-28 10:00:00 · 1718 阅读 · 12 评论 -
【2023华为OD-C卷-堆内存申请】(JavaScript&Java&Python&C++)
即可添加博主vx:utheyi,获取答疑/辅导服务。原创 2023-12-28 10:00:00 · 2152 阅读 · 4 评论 -
【2023华为od-C卷-第一题-英文输入法】100%通过率(JavaScript&Java&Python&C++)
本题已有网友报告代码100%通过率OJ &答疑服务购买任意专栏,即可添加博主vx:utheyi,获取答疑/辅导服务OJ权限获取可以在购买专栏后访问网站:首页 - CodeFun2000题目描述主管期望你来实现英文输入法单词联想功能。需求如下:依据用户输入的单词前缀,从已输入的英文语句中联想出用户想输入的单词,按字典序输出联想到的单词序列,如果联想不到,请输出用户输入的单词前缀。注意:1,英文单词联想时,区分大小写2,缩略形式如"don’t”,判定为两个单词,"don“和"t“3,原创 2023-12-27 10:00:00 · 1578 阅读 · 0 评论 -
【2023华为od-C卷-第二题-执行时长】100%通过率(JavaScript&Java&Python&C++)
(每一秒会新增任务),然后没有执行的任务堆积下来,直到没有任务新增之后,开始解决堆积的任务。比如有10个任务堆积, 每秒可以执行3个任务,那么至少需要4s才可以执行完,我们直接对其上取整即可,具体可以参考下面代码。为了充分发挥GPU算力,需要尽可能多的将务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务。个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成。第三行为任务数组,每个数字用空格分隔,第二行为任务数组长度。每次执行任务的时候,原创 2023-12-27 10:00:00 · 1852 阅读 · 2 评论 -
【2023华为od-C卷-靠谱的车】100%通过率(JavaScript&Java&Python&C++)
出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。出租车司机解释说他不喜欢数字4,所以改装了计费表,任何数字位置遇到数字4就直接跳过,其余功能都正常。跳过了那些数字,肯定是超时的,其实相比于正常计数的10进制,这里变成了9进制,”满9进一,因为4被跳过了,因此我们可以直接枚举每一位的贡献,比如123=,当然,还有一些细节需要处理,比如如果某一位超过了4,那需要-1之后再去计算,因为跳过了所有的含有4的数。小明识破了司机的伎俩,准备利用自己的学识打败司机的阴谋。只有一行,数字N,表示里程表的读数。原创 2023-12-26 10:00:00 · 1369 阅读 · 0 评论 -
【2023华为od-C卷-第三题-推荐多样性】100%通过率(JavaScript&Java&Python&C++)
按照题意模拟即可,代码实现的话,这里首先是按照要求将要传入的数据(也就是输入的3个列表)弄成一维的(就是把3个列表按照某个顺序转为1个列表),然后再通过一维的转为二维的数组(这个二维就是题目中的窗口填充的数据,7行4列的那一个数据),然后再输出即可。1.各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一元素,再从第二个列表中为每屏选择一个元素,依次类推。先输出窗口1的元素列表,再输出窗口2的元素列表,再输出窗口3的元素列表,最后输出窗口4的元素列表。原创 2023-12-26 10:00:00 · 1217 阅读 · 1 评论 -
【2023华为od-C卷-第三题-二叉树的广度搜索】100%通过率(JavaScript&Java&Python&C++)
现有两组字母,分别表示后序遍历(左孩子>右孩子>父节点)和中序遍历(左孩子->父节点右孩子)的结果,请你输出层序遍历的。每个输入文件一行,第一个字符串表示后序遍历结果,第二个字符串表示中序遍历结果。(每串只包含大写字母)有一棵二又树,每个节点由一个大写字母标识(最多26个节点)。根据上述构建二叉树之后,使用BFS来获得中序遍历的结果即可。,即可添加博主vx:utheyi,获取答疑/辅导服务。输出仅一行,表示层序遍历的结果,结尾换行。原创 2023-12-25 10:00:00 · 885 阅读 · 0 评论 -
【2023华为od-C卷-来自异国的客人】100%通过率(JavaScript&Java&Python&C++)
每次购物时,其总是喜欢计算本次支付的花费(折算为异国的价格后)中存在多少幸运数字。进制,故而在该国的进制下不可能出现幸运数字,故而返回。,即可添加博主vx:utheyi,获取答疑/辅导服务。表示该客人购买的物品价值(以十进制计算的价格),如果有,则计数+1,最终输出计数变量的值。的产品时,其中包含多少幸运数字。,同时,异国的客人的幸运数字时。表示该客人所在的国度采用的进制。输出幸运数字的个数,行末无空格。进制的数,并判断每一位是否等于。:此时客人的幸运数字为。,但是由于该国最大为。表示该客人的幸运数字。原创 2023-12-25 10:00:00 · 1650 阅读 · 0 评论