Problem

You are given a positive integer arrivalTime denoting the arrival time of a train in hours, and another positive integer delayedTime denoting the amount of delay in hours.

Return the time when the train will arrive at the station.

Note that the time in this problem is in 24-hours format.

Examples

Example 1

1
2
3
Input: arrivalTime = 15, delayedTime = 5 
Output: 20 
Explanation: Arrival time of the train was 15:00 hours. It is delayed by 5 hours. Now it will reach at 15+5 = 20 (20:00 hours).

Example 2

1
2
3
Input: arrivalTime = 13, delayedTime = 11
Output: 0
Explanation: Arrival time of the train was 13:00 hours. It is delayed by 11 hours. Now it will reach at 13+11=24 (Which is denoted by 00:00 in 24 hours format so return 0).

Constraints

  • 1 <= arrivaltime < 24
  • 1 <= delayedTime <= 24

Solution

Method 1 – Modular Arithmetic

Intuition

To find the delayed arrival time in a 24-hour format, simply add the delay to the arrival time and take the result modulo 24. This handles the wrap-around at midnight.

Approach

  1. Add arrivalTime and delayedTime.
  2. Take the result modulo 24 to handle wrap-around.
  3. Return the result.

Code

1
2
3
4
5
6
class Solution {
public:
    int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
};
1
2
3
func findDelayedArrivalTime(arrivalTime int, delayedTime int) int {
    return (arrivalTime + delayedTime) % 24
}
1
2
3
4
5
class Solution {
    public int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
}
1
2
3
4
5
class Solution {
    fun findDelayedArrivalTime(arrivalTime: Int, delayedTime: Int): Int {
        return (arrivalTime + delayedTime) % 24
    }
}
1
2
3
class Solution:
    def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:
        return (arrivalTime + delayedTime) % 24
1
2
3
4
5
impl Solution {
    pub fn find_delayed_arrival_time(arrival_time: i32, delayed_time: i32) -> i32 {
        (arrival_time + delayed_time) % 24
    }
}
1
2
3
4
5
class Solution {
    findDelayedArrivalTime(arrivalTime: number, delayedTime: number): number {
        return (arrivalTime + delayedTime) % 24;
    }
}

Complexity

  • ⏰ Time complexity: O(1)
  • 🧺 Space complexity: O(1)