最新华为上机考试
真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试2025C卷-华为OD上机考试2025年C卷
题目描述
机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损耗最小化尽量减小每次补充的能量格数 为了保障在8小时内能完成搬砖任务,请计算每小时给机器人充能的最小能量格数。
1、无需考虑机器人补充能量格的耗时,
2、无需考虑机器人搬砖的耗时;
3、机器人每小时补充能量格只在这一个小时中有效;
输入描述
第一行为一行数字,空格分隔
输出描述
机器人每小时最少需要充的能量格,若无法完成任务,输出 -1
示例1
| 输入 | 30 12 25 8 19 |
|---|---|
| 输出 | 15 |
示例2
| 输入 | 10 12 25 8 19 8 6 4 17 19 20 30 |
|---|---|
| 输出 | -1 |
解题思路
-
首先,检查砖块的数量是否大于8,如果大于8,则返回-1。在本例中,砖块数量为5,因此不返回-1。
-
初始化左右边界
left和right。left设置为1(因为至少需要每小时1块能量),right设置为数组中的最大值(即30)。 -
进入
while循环执行二分查找。这个循环将不断缩小搜索范围直到找到最小的每小时能量块数量。 -
在每次循环中,计算中间值
middle,然后计算使用middle作为每小时能量块数量时,完成搬运所有砖块需要的总时间total_time。 -
如果
total_time大于hours,说明middle太小,不能在规定时间内完成任务,因此将left设置为middle + 1。 -
如果
total_time
机器人仓库搬砖算法

本文详细介绍了华为OD机试中的一道机器人搬砖问题,要求在8小时内搬完不同仓库的砖头。解题思路涉及二分查找算法,找到每小时最少需要充能的能量格数,以确保在规定时间内完成任务。文中提供了C++、Java、JavaScript、Python和C语言的解题代码,并给出了多个测试用例。
订阅专栏 解锁全文
5829

被折叠的 条评论
为什么被折叠?



