华为OD技术面手撕代码题:最小时间差

210 阅读1分钟

539.最小时间差

1. 题目描述

给定一个24小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。

2. 题目示例

2.1 示例1

输入:timePoints = ["23:59","00:00"]
输出:1

2.2 示例2

输入:timePoints = ["00:00","23:59","00:00"]
输出:0

2.3 提示

  • 2<=timePoints.length<=21042 <= timePoints.length <= 2 * 10^4
  • timePoints[i]格式为"HH:MM"

3. 解题思路

保存当天时间和第第二天时间

4. 解题代码

4.1 python

class Solution:
    def findMinDifference( self,timePoints: List[str]) -> int:
        nums, idx = [], 0
        for time in timePoints:
            h, m = int(time[:2]), int(time[-2:])
            nums.append(h * 60 + m)
            nums.append(h * 60 + m + 1440)
        nums.sort()
        return min(nums[i ] - nums[i-1] for i in range(1,len(nums)))