539.minimum-time-difference.go 521 B

12345678910111213141516171819202122232425262728
  1. func findMinDifference(timePoints []string) int {
  2. n := len(timePoints)
  3. mins := make([]int, n)
  4. for i := range mins {
  5. mins[i] = time2int(timePoints[i])
  6. }
  7. sort.Ints(mins)
  8. const day int = 24 * 60
  9. diff := day
  10. for i := 0; i < n-1; i++ {
  11. diff = minInt(diff, mins[i+1]-mins[i])
  12. }
  13. diff = minInt(diff, mins[0]+day-mins[n-1])
  14. return diff
  15. }
  16. func time2int(t string) int {
  17. h := int(t[0]*10+t[1]) - 528
  18. m := int(t[3]*10+t[4]) - 528
  19. return h*60 + m
  20. }
  21. func minInt(x, y int) int {
  22. if x < y {
  23. return x
  24. }
  25. return y
  26. }