题目
给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。
解题思路
排序。先全部用分钟数表示,再排序依次判断找两个时间相差最小的值。
代码
class Solution {
public int findMinDifference(List<String> timePoints) {
int length = timePoints.size();
int[] minutes = new int[length];
for (int i = 0; i < length; i++) {
String nowTime = timePoints.get(i);
int nowMinutes = Integer.parseInt(nowTime.substring(0, 2)) * 60 + Integer.parseInt(nowTime.substring(3));
minutes[i] = nowMinutes;
}
Arrays.sort(minutes);
int ans = minutes[0] + 24 * 60 - minutes[length - 1];
for (int i = 1; i < length; i++) {
ans = Math.min(ans, minutes[i] - minutes[i - 1]);
}
return ans;
}
}