# Pythonic approach to solving the minimum time difference problem

• ``````class Solution:
def findMinDifference(self, timePoints):
"""
:type timePoints: List[str]
:rtype: int
"""
# The number of timePoints
l = len(timePoints)

# The maximum difference we can have is 720 minutes, i.e. both time points are exactly 12 hours apart(12*60=720). Therefore are solution must be less than 721 minutes.
diff = 721

# Scrolling throught the list using 2 varaibles, i and j
for i in range(l):
for j in range(i+1, l):

# Getting both time points and splitting them based on ":".
t1 = timePoints[i].split(":")
t2 = timePoints[j].split(":")

# Calculating the time difference based in minutes.
timeDiff = (int(t1[0])*60 + int(t1[1])) - (int(t2[0])*60 + int(t2[1]))

# If the the second time points is greater than the first, i.e. the second time point is ahead in time, then we multiply the difference by -1 to get that difference. This always ensure our difference is positive and that we subtract the lesser value from the greater value.
if timeDiff < 0:
timeDiff *= -1

# If the time difference is less than 720, than we approached it from the correct angle.
if timeDiff < 24*60/2:
if timeDiff < diff:
diff = timeDiff
else:
# If the time difference is greater than 720, than we can approach it from the other"direction". To do that we subtract the time difference from the total number of minutes in a day.
timeDiff = (24*60) - timeDiff
if timeDiff < diff:
diff = timeDiff

# If we acheive a time difference of 0, we will not be able to get a better solution. We return 0 and end our program.
if diff == 0:
return diff

# Return the minimum time difference.
return diff
``````

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.