题目描述
给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。
示例 1:
输入:timePoints = ["23:59","00:00"]
输出:1
示例 2:
输入:timePoints = ["00:00","23:59","00:00"]
输出:0
提示:
- 2 <= timePoints <= 2 * 104
- timePoints[i] 格式为 “HH:MM”
题解思路
我们先将timePoints排序 然后遍历timePoints 并将其时间转化为分钟
找到其中分钟数相差最小的一个
其中计算timePoints[0]+1440-timePoints[-1]要注意一下
题解代码
class Solution:
def getmin(self,s):
return ((ord(s[0])-ord('0'))*10+ord(s[1])-ord('0'))*60+(ord(s[3])-ord('0'))*10+ord(s[4])-ord('0')
def findMinDifference(self, timePoints: List[str]) -> int:
timePoints.sort()
ans=float('inf')
pretime=self.getmin(timePoints[0])
for i in range(1,len(timePoints)):
nextmin=self.getmin(timePoints[i])
ans=min(ans,nextmin-pretime)
pretime=nextmin
ans=min(ans,self.getmin(timePoints[0])+1440-pretime)
return ans