1.题目要求:
给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。
返回列车实际到站的时间。
注意,该问题中的时间采用 24 小时制。
示例 1:
输入:arrivalTime = 15, delayedTime = 5
输出:20
解释:列车正点到站时间是 15:00 ,延误 5 小时,所以列车实际到站的时间是 15 + 5 = 20(20:00)。
示例 2:
输入:arrivalTime = 13, delayedTime = 11
输出:0
解释:列车正点到站时间是 13:00 ,延误 11 小时,所以列车实际到站的时间是 13 + 11 = 24(在 24 小时制中表示为 00:00 ,所以返回 0)。
提示:
1 <= arrivaltime < 24
1 <= delayedTime <= 24
来源:力扣(LeetCode)
2.题目分析:
首先,根据第一个例子,
输入:arrivalTime = 15, delayedTime = 5
输出:20
解释:列车正点到站时间是 15:00 ,延误 5 小时,所以列车实际到站的时间是 15 + 5 = 20(20:00)。
我们可以想到直接将两个数相加,即可得出答案。
但是当我们看到第二个例子时,
输入:arrivalTime = 13, delayedTime = 11
输出:0
解释:列车正点到站时间是 13:00 ,延误 11 小时,所以列车实际到站的时间是 13 + 11 = 24(在 24 小时制中表示为 00:00 ,所以返回 0)。
如果两个数直接相加,得不到我们想要的答案。
其实这道题考察的知识点是我们在学习数据结构时循环队列那一章的知识点。
循环队列,怎么来判断队列是否满了呢?下面来看一下循环队列的思想:
这道题是的24就充当了MAXSIZE,相当于求队长,即(arrivalTime +delayedTime+24)%24
int findDelayedArrivalTime(int arrivalTime, int delayedTime){
int lasttime=0;
lasttime=(arrivalTime+delayedTime+24)%24;
return lasttime;
}