//给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。
// 示例 1:
//输入:timePoints = ["23:59","00:00"]
//输出:1
// 示例 2:
//输入:timePoints = ["00:00","23:59","00:00"]
//输出:0
// 提示:
// 2 <= timePoints <= 2 * 10⁴
// timePoints[i] 格式为 "HH:MM"
public int findMinDifference(List<String> timePoints) {
//先校验长度,不符合条件直接返回0
if(timePoints.size()<2||timePoints.size()>20000){
return 0;
}
int[] time=new int[2*1440+1];
for (int i = 0; i < timePoints.size(); i++) {
String[] split = timePoints.get(i).split(":");
Integer today = Integer.valueOf(split[0])*60+Integer.valueOf(split[1]);
Integer tomorrow =today+1440;
time[today]++;
time[tomorrow]++;
}
ArrayList<Integer> list = new ArrayList();
for (int i = 0; i < time.length; i++) {
if(time[i]>1){
return 0;
}
if(time[i]==1){
int max=i;
for (int j=i+1;j<time.length;j++){
if(time[j]==1){
list.add(j-max);
break;
}
}
}
}
return Collections.min(list);
}
力扣每日一题——最小时间差
最新推荐文章于 2024-07-25 19:34:38 发布