Python|Leetcode《539》|最小时间差

简介: Python|Leetcode《539》|最小时间差

一、题目描述

题目:最小时间差

难度:中等

地址:《最小时间差》

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


示例1

输入:timePoints = [“23:59”,“00:00”]

输出:1


示例2

输入:timePoints = [“00:00”,“23:59”,“00:00”]

输出:0


提示:image.png


二、题目解析

本题考查我们得到任意两个时间中最小的差值,并以分钟数来进行表示。


对于这种寻找差值的题目,我们一般的思路就是进行排序并且计算每两个数值之间的差值寻找最小的那一个,本题的思路依旧如此,但是需要注意一下其中的一些关键点。


1.循环计算:循环计算指的是我们需要多进行一次计算,此次计算算的是时间列表末尾的时间和开始的时间的差值,例如有排序后的序列['00:00','01:00','23:00],不能忘记计算23:0000:00的差值。

2.分钟计算:小时*60+分钟

3.分钟化简:24小时为1440分钟,但是任意两个时间的差值都应该在720分钟也就是12小时之内,因此计算的时间差大于720分钟的差值我们应该用1440减去该时间作为结果。


三、解题代码

解法

class Solution:
    def findMinDifference(self, timePoints: List[str]) -> int:
        # 排序
        timePoints.sort()
        n = len(timePoints)
        res = float('inf')
        for i in range(n):
            # 计算时间差
            dif = abs((int(timePoints[i][:2]) * 60 + int(timePoints[i][3:])) - (int(timePoints[i - 1][:2]) * 60 + int(timePoints[i - 1][3:])))
            # 时间化简
            if dif > 720:
                dif = 1440 - dif
            # 取每次的最小值
            if dif < res:
                res = dif
        return res
相关文章
|
15小时前
|
存储 索引 Python
leetcode-350:两个数组的交集 II(python中Counter的用法,海象运算符:=)
leetcode-350:两个数组的交集 II(python中Counter的用法,海象运算符:=)
31 0
|
15小时前
|
API Python
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
|
15小时前
|
算法 索引 Python
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
leetcode-138:复制带随机指针的链表 (python中copy与deepcopy区别)
36 0
|
15小时前
|
开发者 索引 Python
【python刷题】LeetCode 2057E 值相等的最小索引(5种简单高效的解法)
【python刷题】LeetCode 2057E 值相等的最小索引(5种简单高效的解法)
28 0
|
11月前
|
Python
Python|leetcode-访问所有点的最小时间
Python|leetcode-访问所有点的最小时间
53 0
|
12月前
|
Python
Python|Leetcode《1220》|统计元音字母序列的数目
Python|Leetcode《1220》|统计元音字母序列的数目
|
12月前
|
Python
Python|Leetcode《334》|递增的三元子序列
Python|Leetcode《334》|递增的三元子序列
|
12月前
|
算法 Python
Python|Leetcode《306》|累加数
Python|Leetcode《306》|累加数
|
12月前
|
存储 Unix Python
Python|Leetcode《71》|简化路径
Python|Leetcode《71》|简化路径
|
12月前
|
测试技术 Python
Python|Leetcode《1576》|替换所有的问号
Python|Leetcode《1576》|替换所有的问号