一 .题目
二 .思路
- 仿时间戳,以分钟为单位把每个时间的时间戳给计算出来
- 这里要计算当前时间和当前时间后一天这个时间点的的时间,主要是为了防止跨夜计算的情况,比如题目里的输入:timePoints = ["23:59","00:00"],输出:1
三 .代码
class Solution {
public int findMinDifference(List<String> timePoints) {
int size=timePoints.size();
//仿时间戳做个今明两天的数组
int[] time=new int[size*2];
for (int i = 0,idx=0; i <size; idx=idx+2,i++) {
String[] split = timePoints.get(i).split(":");
int h = Integer.parseInt(split[0]);
int m = Integer.parseInt(split[1]);
//计算当前时间的时间戳
time[idx]=h*60+m;
//计算后一天当前时间的时间戳
//60*24=1440分钟
time[idx+1]=time[idx]+1440;
}
Arrays.sort(time);
int res=Integer.MAX_VALUE;
for (int i = 0; i+1 < time.length; i++) {
res=Math.min((time[i+1]-time[i]),res);
}
return res;
}
}
网友评论