阅读量:2
获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。
速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。
注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 时出发,依次类推
输入描述
第一行两个数字:M N,分别代表车辆数和到终点的距离,以空格分隔
接下来 M 行,每行一个数字 S,代表每辆车的速度。0 < S < 30
输出描述
最后一辆车到达目的地花费的时间
题目解析
这个问题可以通过模拟每辆车的行驶过程来解决。由于速度较快的车在追上前面的车后,只能以较慢的速度行驶,因此,关键在于确定每辆车实际行驶的时间。对于每一对相邻的车,后车追上前车的时刻取决于两车之间的初始距离和它们的速度差。一旦后车追上,两车就以相同的速度行驶直到终点。因为每辆车之间固定间隔1小时出发,所以还需要考虑这个因素来确定最后一辆车的实际行驶情况。
Java算法源码
import