1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public int findMinDifference(List<String> timePoints) { List<Integer> minuteList = new ArrayList<>(timePoints.size()); for (String timePoint : timePoints) { minuteList.add(getMinutes(timePoint)); } Collections.sort(minuteList);
int minDiffMinutes = Math.min(minuteList.get(minuteList.size() - 1) - minuteList.get(0), minuteList.get(0) + 24 * 60 - minuteList.get(minuteList.size() - 1)); for (int i = 0; i < minuteList.size()-1; i++) { minDiffMinutes = Math.min(minDiffMinutes, minuteList.get(i + 1) - minuteList.get(i)); } return minDiffMinutes; }
private Integer getMinutes(String timePoint) { int hour = Integer.parseInt(timePoint.substring(0, 2)); int minute = Integer.parseInt(timePoint.substring(3)); return hour * 60 + minute; } }
|
References
539. Minimum Time Difference
剑指 Offer II 035. 最小时间差