剑指 Offer II 035. 最小时间差
- 将字符串转换为以分钟为单位的数组。
- 对数组进行排序。
两两比较。注意,尾部需要经过
24 * 60格式化一下,即time = 24 * 60 - time[n - 1]class Solution { public int findMinDifference(List<String> timePoints) { // 排序 if (timePoints == null || timePoints.size() == 0 || timePoints.size() > 60 * 24) return 0; int n = timePoints.size(); int[] times = new int[n]; for (int i = 0; i < n; i++) { String[] timeStr = timePoints.get(i).split(":"); // 转换成分 times[i] = Integer.parseInt(timeStr[0]) * 60 + Integer.parseInt(timeStr[1]); } // 排序 Arrays.sort(times); int min = Integer.MAX_VALUE; for (int i = 1; i < n; i++) { min = Math.min(min, times[i] - times[i - 1]); } min = Math.min(min, 24 * 60 - times[n - 1] + times[0]); return min; } }
