算法大师
全网最快最准最稳的华为OD专栏,提供答疑和在线OJ刷题,助力上岸OD!!!
展开
-
【C++题解】华为 OD 机试 C卷抽中题库清单(全真题库)含考点说明
目前在考C卷,经过两个月的收集整理,C卷真题已基本整理完毕抽到原题的概率为2/3到3/3,也就是最少抽到两道原题。请注意:大家刷完C卷真题,最好要把B卷的真题刷一下,因为C卷的部分真题来自B卷。原创 2024-01-12 23:01:33 · 179 阅读 · 0 评论 -
华为OD机试D卷C卷 - 最大N个数与最小N个数的和(C++)
华为OD机试统一考试D卷C卷 - 最大N个数与最小N个数的和(C++)原创 2024-07-27 09:01:03 · 375 阅读 · 0 评论 -
华为OD机试D卷C卷 - CPU算力分配(C++)
华为OD机试统一考试D卷C卷 - CPU算力分配。现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。原创 2024-08-17 09:38:51 · 17 阅读 · 0 评论 -
华为OD机试D卷C卷 - 万能单词拼写 / 掌握单词个数(C++)
华为OD机试统一考试D卷C卷 - 万能单词拼写 / 掌握单词个数。有一个字符串数组 words 和一个字符串 chars。假如可以用 chars 中的字母拼写出 words 中的某个“单词”(字符串),那么我们就认为你掌握了这个单词。原创 2024-08-17 09:36:47 · 16 阅读 · 0 评论 -
华为OD机试D卷C卷 - 最多购买宝石数目 (C++)
华为OD机试统一考试D卷C卷 - 最多购买宝石数目。橱窗里有一排宝石,不同的宝石对应不同的价格,宝石的价格标记为 gems[i]0 ≤ i < nn = gems.length宝石可同时出售0个或多个,如果同时出售多个,则要求出售的宝石编号连续;原创 2024-08-17 09:33:14 · 11 阅读 · 0 评论 -
华为OD机试D卷C卷 - 执行任务赚获取最多积分 (C++)
华为OD机试统一考试D卷C卷 - 执行任务赚获取最多积分。现有N个任务需要处理,同一时间只能处理一个任务,处理每个任务所需要的时间固定为1。原创 2024-08-17 09:11:44 · 17 阅读 · 0 评论 -
华为OD机试D卷C卷 - 小明找位置(C++)
华为OD机试统一考试D卷C卷 - 小明找位置。小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于nLog(n);学号为整数类型,队列规模原创 2024-08-17 09:10:30 · 4 阅读 · 0 评论 -
华为OD机试D卷C卷 - 字符串变换最小字符串(C++)
华为OD机试统一考试D卷C卷 - 字符串变换最小字符串(C++)原创 2024-07-26 08:53:23 · 72 阅读 · 0 评论 -
华为OD机试D卷C卷 - 按身高和体重排队(C++)
华为OD机试统一考试D卷C卷 - 按身高和体重排队(C++)原创 2024-07-26 08:52:28 · 57 阅读 · 0 评论 -
华为OD机试D卷C卷 - 学生排名/智能成绩表(C++)
华为OD机试统一考试D卷C卷 - 学生排名/智能成绩表(C++)原创 2024-07-26 08:51:35 · 69 阅读 · 0 评论 -
华为OD机试D卷C卷 - 多段线数据压缩(C++)
上图中的多段线可以用下面的坐标串表示:(2, 8), (3, 7), (3, 6), (3, 5), (4, 4), (5, 3), (6, 2), (7, 3), (8, 4), (7, 5)。但可以发现,这种表示不是最简的,其实只需要存储6个蓝色的关键点即可,它们是线段的起点、拐点、终点,而剩下4个点是冗余的。如上图所示,6个蓝色像素的坐标依次是(2,8)、(3,7)、(3,5)、(6,2)、(8,4)、(7,5)。即可以简化为:(2,8)、(3,7)、(3,5)、(6,2)、(8,4)、(7,5)原创 2024-07-23 08:53:31 · 6096 阅读 · 0 评论 -
华为OD机试D卷C卷 - 石头剪刀布游戏(C++)
根据题目的游戏规则,只有当有且仅有一种出拳形状优于其他出拳形状时,才有赢家。如果有三种形状或者只有一种形状,无论每种形状的人数是多少,都会判定为平局。因此,在判断胜负时,只需要关注出拳形状的种类,而不是每种形状的人数。例如 1: 三个玩家出拳分别是A, B, C ,由于出现三方优势循环(即没有任何一方优于其它出拳者),判断为平局。当本场次中有且仅有一种出拳形状优于其它出拳形状,则该形状的玩家是胜利者。例如 2: 两个玩家,出拳分别是 A, B ,出拳 A 的获胜。在一场游戏中,每个玩家的信息为一行。原创 2024-07-23 08:52:33 · 6067 阅读 · 0 评论 -
华为OD机试D卷C卷 - 数组去重和排序(C++)
给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。先统计数组每个元素重复的次数,然后去重,最后根据重复次数来排序去重元素。备注 数组大小不超过100 数组元素值大小不超过100。原创 2024-07-22 09:50:12 · 6058 阅读 · 0 评论 -
华为OD机试D卷C卷 - 整型数组按个位值排序/最低位排序(C++)
给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。原创 2024-07-22 09:49:09 · 1331 阅读 · 0 评论 -
华为OD机试D卷C卷 - 绘图机器(C++)
的绘图笔初始位置在原点(0,0)机器启动后按照以下规则来进行绘制直线。1. 尝试沿着横线坐标正向绘制直线直到给定的终点E2. 期间可以通过指令在纵坐标轴方向进行偏移,offsetY为正数表示正向偏移,为负数表示负向偏移给定的横坐标终点值E 以及若干条绘制指令,请计算绘制的直线和横坐标轴以及x=E的直线组成的图形面积。原创 2024-07-20 10:51:12 · 30 阅读 · 0 评论 -
华为OD机试D卷C卷 - 虚拟游戏理财(C++)
在一款虚拟游戏中生活,你必须进行投资以增强在虚拟游戏中的资产以免被淘汰出局。现有一家Bank,它提供有若干理财产品 m 个,风险及投资回报不同,你有 N(元)进行投资,能接收的总风险值为X。你要在可接受范围内选择最优的投资方式获得最大回报。原创 2024-07-20 10:50:25 · 20 阅读 · 0 评论 -
华为OD机试D卷C卷 - 数组去重和排序(C++)
给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。原创 2024-07-19 08:57:33 · 29 阅读 · 0 评论 -
华为OD机试D卷C卷 - 整型数组按个位值排序/最低位排序(C++)
给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。原创 2024-07-19 08:54:10 · 6094 阅读 · 1 评论 -
华为OD机试D卷C卷 - 字符串摘要(C++)
给定一个字符串的摘要算法,请输出给定字符串的摘要值。原创 2024-07-11 09:05:06 · 45 阅读 · 0 评论 -
华为OD机试D卷C卷 - 内存冷热标记(C++)
现代计算机系统中通常存在多级的存储设备,针对海量 workload 的优化的一种思路是将热点内存页优先放到快速存储层级,这就需要对内存页进行冷热标记。一种典型的方案是基于内存页的访问频次进行标记,如果统计窗口内访问次数大于等于设定阈值,则认为是热内存页,否则是冷内存页。对于统计窗口内跟踪到的访存序列和阈值,现在需要实现基于频次的冷热标记。内存页使用页框号作为标识。原创 2024-07-11 09:04:04 · 48 阅读 · 0 评论 -
华为OD机试D卷C卷 - 剩余银饰的重量(C++ Java JavaScript Python C语言)
程序使用了一个优先队列(PriorityQueue)来存储所有的银饰,优先队列的特性是每次取出的都是队列中最大的元素(在这个程序中,最大的元素就是最重的银饰)。在这个过程中,每次都会选择三块最重的银饰进行熔化,熔化后的结果根据这三块银饰的重量关系有不同的计算方式。块二手市场收集的银饰,每块银饰的重量都是正整数,收集到的银饰会被熔化用于打造新的饰品。如果剩余两块,返回较大的重量(若两块重量相同,返回任意一块皆可);如果剩余两块,返回较大的重量(若两块重量相同,返回任意一块皆可);,最后没有剩下银块,返回。原创 2024-07-10 08:47:10 · 37 阅读 · 0 评论 -
华为OD机试D卷C卷 - 分配土地(C++ )
从前有个村庄,村民们喜欢在各种田地上插上小旗子,旗子上标识了各种不同的数字。某天集体村民决定将覆盖相同数字的最小矩阵形的土地分配给村里做出巨大贡献的村民,请问此次分配土地,做出贡献的村民种最大会分配多大面积?原创 2024-07-10 08:45:57 · 40 阅读 · 0 评论 -
华为OD机试D卷C卷 - 寻找身高相近的小朋友(C++)
小明身高100,班级学生10个,身高分别为95 96 97 98 99 101 102 103 104 105,按身高差排序后结果为:99 101 98 102 97 103 96 104 95 105。小明今年升学到了小学1年级来到新班级后,发现其他小朋友身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序,请帮他实现排序。第二行为n个正整数,h1 ~ hn分别是其他小朋友的身高,取值范围0原创 2024-07-09 08:57:56 · 44 阅读 · 0 评论 -
华为OD机试D卷C卷 - 考勤信息(C++)
根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,公司用一个字符串来表示员工的出勤信息。用户的考勤数据字符串。原创 2024-07-09 08:55:20 · 26 阅读 · 0 评论 -
华为OD机试D卷C卷 - 开源项目热度榜单(C++题解)
某个开源社区希望将最近热度比较高的开源项目出一个榜单,推荐给社区里面的开发者。对于每个开源项目,开发者可以进行关注(watch)、收藏(star)、fork、提issue、提交合并请求(MR)等。原创 2024-01-12 23:25:30 · 97 阅读 · 0 评论 -
华为OD机试D卷C卷 - 寻找最富裕的小家庭(C++题解)
在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭。原创 2024-01-12 23:24:28 · 85 阅读 · 0 评论 -
华为OD机试D卷C卷 - 出租车计费 、靠谱的车(C++题解)
程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题,总是偏大。原创 2024-01-12 23:23:36 · 75 阅读 · 0 评论 -
华为OD机试D卷C卷 - 机器人仓库搬砖(C++题解)
机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损耗最小化尽量减小每次补充的能量格数 为了保障在8小时内能完成搬砖任务,请计算每小时给机器人充能的最小能量格数。1、无需考虑机器人补充能量格的耗时,2、无需考虑机器人搬砖的耗时;3、机器人每小时补充能量格只在这一个小时中有效;原创 2024-01-12 23:22:33 · 101 阅读 · 0 评论 -
华为OD机试D卷C卷 - 分割均衡字符串(C++题解)
均衡串定义: 字符串只包含两种字符,且两种字符的个数相同。给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。约定字符串中只包含大写的X和Y两种字符。原创 2024-01-12 23:21:31 · 41 阅读 · 0 评论 -
华为OD机试D卷C卷 - 求满足条件的最长子串的长度(C++题解)
给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求:1、 只包含1个字母(a~z, A~Z),其余必须是数字;2、 字母可以在子串中的任意位置;如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。原创 2024-01-12 23:20:23 · 28 阅读 · 0 评论 -
华为OD机试D卷C卷 - 游戏分组/王者荣耀(C++题解)
部门准备举办一场王者荣耀表演赛,有10名游戏爱好者参与,分5为两队,每队5人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把10名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。原创 2024-01-12 23:18:20 · 105 阅读 · 0 评论 -
华为OD机试D卷C卷 - 爱吃蟠桃的孙悟空 / 猴子吃桃(C++题解)
孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有 N 棵桃树,每颗树上都有桃子,守卫将在 H 小时后回来。孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉 K 个,如果树上的桃子少于 K 个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。请返回孙悟空可以在 H 小时内吃掉所有桃子的最小速度 K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。原创 2024-01-12 23:17:16 · 100 阅读 · 0 评论 -
华为OD机试D卷C卷 - 找朋友(C++题解)
在学校中,N个小朋友站成一队, 第i个小朋友的身高为height[i],第i个小朋友可以看到的第一个比自己身高更高的小朋友j,那么j是i的好朋友(要求j > i)。请重新生成一个列表,对应位置的输出是每个小朋友的好朋友位置,如果没有看到好朋友,请在该位置用0代替。原创 2024-01-12 23:16:09 · 59 阅读 · 0 评论 -
华为OD机试D卷C卷 - 转盘寿司(C++题解)
寿司店周年庆,正在举办优惠活动回馈新老客户。寿司转盘上总共有 n 盘寿司,prices[i] 是第 i 盘寿司的价格,如果客户选择了第 i 盘寿司,寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j,前提是 prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。每个价格的寿司都可无限供应。原创 2024-01-12 23:15:08 · 68 阅读 · 0 评论 -
华为OD机试D卷C卷 - 找座位(C++题解)
在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。原创 2024-01-12 23:14:06 · 50 阅读 · 0 评论 -
华为OD机试D卷C卷 - 环中最长子串/字符成环找偶数O(C++题解)
给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出 'o' 字符出现了偶数次最长子字符串的长度。原创 2024-01-12 23:13:05 · 42 阅读 · 0 评论 -
华为OD机试D卷C卷 - 找出作弊的人(C++题解)
公司组织了一次考试,现在考试结果出来了,想看一下有没人存在作弊行为,但是员工太多了,需要先对员工进行一次过滤,再进一步确定是否存在作弊行为。原创 2024-01-12 23:11:52 · 158 阅读 · 0 评论 -
华为OD机试D卷C卷 - 整数对最小和(C++题解)
题目描述:整数对最小和(分值100)给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。原创 2024-01-12 23:10:40 · 17 阅读 · 0 评论 -
华为OD机试D卷C卷 - 最长的指定瑕疵度的元音子串(C++题解)
开头和结尾都是元音字母(aeiouAEIOU)的字符串为元音字符串,其中混杂的非元音字母数量为其瑕疵度。比如:原创 2024-01-12 23:09:39 · 27 阅读 · 0 评论 -
华为OD机试D卷C卷 - 查找众数及中位数(C++题解)
众数是指一组数据中出现次数量多的那个数,众数可以是多个。中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数。查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数。原创 2024-01-12 23:08:16 · 44 阅读 · 0 评论