给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示。
示例 1:
输入: ["23:59","00:00"]
输出: 1
备注:
列表中时间数在 2~20000 之间。
每个时间取值在 00:00~23:59 之间。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-time-difference
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
private int parse(String str) {
String[] times = str.split(":");
String hour = times[0];
String minute = times[1];
int t = (minute.charAt(0) - '0') * 10 + (minute.charAt(1) - '0');
t += (60 * ((hour.charAt(0) - '0') * 10 + (hour.charAt(1) - '0')));
return t;
}
//入口
public int findMinDifference(List<String> timePoints) {
int len = timePoints.size();
if (len < 2) {
return 0;
}
int[] times = new int[len];
for(int i = 0; i < len; i++) {
times[i] = parse(timePoints.get(i));
}
Arrays.sort(times);
int min = Integer.MAX_VALUE;
for(int i = 0; i < len - 1; i++) {
min = Math.min(min, times[i+1] - times[i]);
}
min = Math.min(min, 24 * 60 - times[len - 1] + times[0]);
return min;
}