华为OD6.27机试题目分享

第一题:用户调度问题(100分)
在通信系统中有一个常见的问题是对用户进行不同策略的调度
会得到不同系统消耗的性能
假设由N个待串行用户,每个用户可以使用A/B/C三种不同的调度策略
不同的策略会消耗不同的系统资源,请你根据如下规则进行用户调度并返回总的消耗资源数
规则是:相邻的用户不能使用相同的调度策略
例如:
第一个用户使用A策略 则第二个用户只能使用B和C策略
对单的用户而言,不同的调度策略对系统资源的消耗可以规划后抽象为数值
例如
某用户分别使用A/B/C策略的系统消耗,分别为15 8 17
每个用户依次选择当前所能选择的对系统资源消耗最少的策略,局部最优
如果有多个满足要求的策略,选最后一个

输入描述:
第一行表示用户个数N
接下来表示每一行表示一个用户分别使用三个策略的资源消耗
resA resB resC

输出描述:
最优策略组合下的总的系统消耗资源数

示例一:
输入:
3
15 8 17
12 20 9
11 7 5
输出:
24
说明:
1号用户使用B策略
2号用户使用C策略
3号用户使用B策略
系统资源消耗8+9+7
思路:因为只需要局部最优,可以将上一步选择的任务标记出来,下一个用户调度时,直接将标记到的相同类型的任务放在一边,比较另外两个任务的大小来进行选择

第二题:停车位问题(100分)
有一横排车位,有至少一个车位停了车,也至少有一个车位没停车。一个车位有车用1表示,无车用0表示。为了避免剐蹭,请为司机规划停在哪个车位,距离其他车中间间隔的车位最远。输入:一组数据,代表目前车位的状态。 输出:当前车辆停车距离其他车辆的最大间距
例子:
输入 1 0 0 0 0 1 0 1 0
输出 2

思路:判断一个位置时,利用两个变量分别存储该位置左右两边距离最近车的距离,取较小的一个为这个位置的状态。

第三题:最大数(200分)
该题目为leetcode179题
给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出的结果可能非常大,所以你需要输出一个字符串而不是整数。
例如:
输入:10 9
输出:910
解析可以参考leetcode上面的解析,非常完整。思路其实就是排序,只是在排序的过程中比较两个数字的大小要将两个数分别拼接到一起,比较两个数对应的两种拼接方法处理后的大小,将较大的一种方法中的位于左侧的数放在字符串靠左的位置即可。


#华为od机试#
全部评论
同求
点赞 回复 分享
发布于 2022-08-22 00:48 广东
你好,代码可以贴出来分享一下么?
点赞 回复 分享
发布于 2022-07-03 23:08
题目还好
点赞 回复 分享
发布于 2022-07-01 11:51

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
3
21
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务