华为OD机试C卷-- 运输时间(Java & JS & Python & C)

飞码创造者 2024-07-06 11:05:01 阅读 83

获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。

题目描述

M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。

速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。

注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推

输入描述

第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔

接下来 M 行,每行一个数字 S,代表每辆车的速度。0 < S < 30

输出描述

最后一辆车到达目的地花费的时间

题目解析

这个问题可以通过模拟每辆车的行驶过程来解决。由于速度较快的车在追上前面的车后,只能以较慢的速度行驶,因此,关键在于确定每辆车实际行驶的时间。对于每一对相邻的车,后车追上前车的时刻取决于两车之间的初始距离和它们的速度差。一旦后车追上,两车就以相同的速度行驶直到终点。因为每辆车之间固定间隔1小时出发,所以还需要考虑这个因素来确定最后一辆车的实际行驶情况。

Java算法源码

import



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。