解法一
现将时间格式转换为以分钟为单位的整数,排序后求最小差值,注意最大值和最小值之间的差有两种算法,其中一种要补上一天的时间1440分钟。
import java.util.Arrays;
import java.util.List;
class Solution {
public int findMinDifference(List<String> timePoints) {
int[] times = new int[timePoints.size()];
String[] hourAndMinute = new String[2];
for (int i = 0; i < timePoints.size(); ++i) {
hourAndMinute = timePoints.get(i).split(":");
times[i] = Integer.parseInt(hourAndMinute[0]) * 60 + Integer.parseInt(hourAndMinute[1]);
}
Arrays.sort(times);
int min = times[0] - times[times.length - 1] + 1440;
for (int i = 1; i < times.length; ++i) {
min = Math.min(min, times[i] - times[i - 1]);
}
return min;
}
}