Minimum Time Difference

    xiaoxiao2021-03-25  76

    leetcode第539题,竞赛题,要求求给定24小时制时间列表中两个最近的时间间隔。

    这道题首先要解决的就是把字符串表示的时间转化为分钟数,这样才好计算。 其次,如何才能计算两个最近的时间间隔,这里我们可以把分钟数排个序,然后依次遍历,只需要计算相邻时间点的距离,依次与当前最小值比较就可以了,因为排序后,最小间隔只可能出现在相邻时间点上。

    但是时钟问题有个很大的麻烦,就是循环问题,比如23:59和00:00,只差了一分钟,但是按照上述计算,则差了1439分钟,这显然是不对的。原因在于,00:00不在属于今天的时间了,而是下一天的开始,为了简便起见,可以这样处理,每次计算时间,都加上24小时,一并加入列表,这样就可以把第二天的时间也考虑到,遍历的时候自然也就能找出最小的了。

    class Solution(object): def findMinDifference(self, timePoints): """ :type timePoints: List[str] :rtype: int """ minList = [] for time in timePoints: minute = int(time[:2])*60+int(time[3:]) minute2 = minute+24*60 minList.append(minute) minList.append(minute2) print minList minList.sort() diff = 1441 for i in range(1, len(minList)): diff = min(diff, minList[i]-minList[i-1]) return diff
    转载请注明原文地址: https://ju.6miu.com/read-38700.html

    最新回复(0)