华为OD机试真题详解
文章平均质量分 62
题目来自牛客平台机考同学的机试分享,题目描述信息可能记录不完整,题解无法保证通过率,只提供解题思路,注意!注意!!注意!!!不要直接使用博主代码进行机考!以免考试被判定不合格。
卷不动的老程序猿
大龄老程序猿,旨在帮助后辈继续在程序开发的长征路上走下去
展开
-
【华为机试真题详解 Java实现】银行插队【2023 Q1 考试题 A卷 100分】
某银行将客户分为了若干个优先级, 1 级最高, 5 级最低,当你需要在银行办理业务时,优先级高的人。题目中给出了一些客户到来和银行办理业务的时间序列,每个客户具有一个优先级(1-5,1 最高,5 最。需要注意的是,本题需要注意处理多个连续的 p 输入,也就是输出多个办理业务的客户编号。列已空,则需要寻找下一个最高优先级,即从当前最高优先级的下一个优先级开始查找,如果该优先级。时,从当前最高优先级队列中取出一个客户编号,输出其编号,并更新当前最高优先级。低),优先级高的客户随时可以插队到优先级低的客户前面。原创 2023-03-25 22:06:33 · 120 阅读 · 0 评论 -
【华为机试真题详解 Java实现】统一限载货物数最小值【2023 Q1 考试题 A卷 200分】
在二分查找过程中,每次计算出干货和湿货需要的中转车数量,判断总车数是否小于等于2k,并且最大货物数量是否小于等于限制值,根据这些条件移动左右指针,最终得到最小限载量。货物由不同供货商从各地发来,各地的货物是依次进站,然后小明按照卸货顺序依次装货到中转车上,一个供货商的货只能装到一辆车上,火车站附近的货物中转站负责将到站货物运往仓库,小明在中转站负责调度2K辆中转车(K辆干货中转车,K辆湿货中转车)。中转车的限载货物量由小明统一制定,在完成货物中转的前提下,请问中转车的统一限载货物数最小值为多少。原创 2023-03-24 16:18:16 · 200 阅读 · 0 评论 -
【华为机试真题详解 Java实现】攻城战【2023 Q1 考试题 A卷 200分】
dp[i][j] = max(dp[i-1][j], max(dp[i][j-c[i][1]*k]+c[i][0]*k)),其中k表示第i种大炮在火药剩余量不超过j的情况下最多能攻击的次数,c[i][0]表示第i个大炮的威力,c[i][1]表示第i个大炮每次攻击需消耗的火药量。一支攻城部队,有若干种大炮各座,以及数量有限的火药,每种大炮的威力不尽相同,且在每次开火之前都需要一定时间填充火药,定义状态:dp[i][j] 表示前i种大炮在火药剩余量不超过j的情况下,最大的威力是多少。第一行,整数N,M,T。原创 2023-03-23 21:35:49 · 152 阅读 · 0 评论 -
【华为机试真题详解 Java实现】数组限制数【2023 Q1 考试题 A卷 200分】
具体实现时,我们可以使用一个变量sum来记录数组中小于等于限制的元素的总和,每次遍历数组,如果当前元素小于等于限制,那么我们就将这个元素加入sum中。最后,如果sum小于等于total,那么说明限制取值为mid是可行的,我们需要将限制的取值范围缩小到[mid+1, right];具体地,我们可以二分枚举限制的取值范围,每次假设限制的取值为mid,然后判断在这个限制下数组的总和是否小于等于total。给定一个数组,可以给数组添加一个限制使得数组中的每一个数和限制取min,要使数组的总和不超过 total,原创 2023-03-22 21:11:00 · 173 阅读 · 1 评论 -
【华为机试真题详解 Java实现】带传送阵的矩阵游离【2023 Q1 考试题 A卷 | 200分】
具体地,我们可以枚举每一个位置 (i, j),对于每一个位置,我们计算出四种方式到达该位置的最小代价。然后,我们考虑转移。从左上角到 (i, j) 可以有四种方式:从 (i-1, j) 向下走、从 (i, j-1) 向右走、从 (i+1, j) 向上走、从 (i, j+1) 向左走。但是,这里需要注意的是,如果我们使用了传送阵,那么从一个数跳到另外一个相同的数代价为 0,因此我们需要特殊处理这种情况。我们可以定义一个二维数组 dp,其中 dp[i][j] 表示从左上角走到 (i, j) 位置的最小代价。原创 2023-03-22 16:12:58 · 238 阅读 · 0 评论