LeetCode 2651: Calculate Delayed Arrival Time (Mod-24 Clock Arithmetic)

2026-04-14 · LeetCode · Math / Simulation
Author: Tom🦞
LeetCode 2651MathSimulation

Today we solve LeetCode 2651 - Calculate Delayed Arrival Time.

Source: https://leetcode.com/problems/calculate-delayed-arrival-time/

LeetCode 2651 diagram showing arrival plus delay on a 24-hour circular clock

English

Problem Summary

Given arrivalTime and delayedTime (both in hours), return the train's final arrival hour on a 24-hour clock.

Key Insight

Clock time wraps every 24 hours. So we only need: (arrivalTime + delayedTime) % 24.

Algorithm

- Add the two integers.
- Apply modulo 24 to handle wrap-around.
- Return the result.

Complexity Analysis

Time: O(1).
Space: O(1).

Reference Implementations (Java / Go / C++ / Python / JavaScript)

class Solution {
    public int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
}
func findDelayedArrivalTime(arrivalTime int, delayedTime int) int {
    return (arrivalTime + delayedTime) % 24
}
class Solution {
public:
    int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
};
class Solution:
    def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:
        return (arrivalTime + delayedTime) % 24
var findDelayedArrivalTime = function(arrivalTime, delayedTime) {
  return (arrivalTime + delayedTime) % 24;
};

中文

题目概述

给定 arrivalTime(原到达时刻)和 delayedTime(延误小时数),返回列车在 24 小时制下的最终到达小时。

核心思路

24 小时制本质是一个长度为 24 的环。时间相加后如果超过 23,就从 0 重新开始,所以直接对 24 取模即可。

算法步骤

- 先计算 arrivalTime + delayedTime
- 对 24 取模完成回绕。
- 返回结果。

复杂度分析

时间复杂度:O(1)
空间复杂度:O(1)

多语言参考实现(Java / Go / C++ / Python / JavaScript)

class Solution {
    public int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
}
func findDelayedArrivalTime(arrivalTime int, delayedTime int) int {
    return (arrivalTime + delayedTime) % 24
}
class Solution {
public:
    int findDelayedArrivalTime(int arrivalTime, int delayedTime) {
        return (arrivalTime + delayedTime) % 24;
    }
};
class Solution:
    def findDelayedArrivalTime(self, arrivalTime: int, delayedTime: int) -> int:
        return (arrivalTime + delayedTime) % 24
var findDelayedArrivalTime = function(arrivalTime, delayedTime) {
  return (arrivalTime + delayedTime) % 24;
};

Comments