您的位置:首页 > Web前端

539.Minimum Time Difference

2017-12-12 00:30 330 查看

539.Minimum Time Difference

题目描述:Given a list of 24-hour clock time points in “Hour:Minutes” format, find the minimum minutes difference between any two time points in the list.

Example 1:

Input: ["23:59","00:00"]
Output: 1


题目大意:找出最相近的两个时间

思路:建立一个24*60的桶,将出现的时间存储到桶中,遍历桶,计算相近的两个桶之间的差值,找出差值最小值,由于最小值可能出现在最后一个时间与第一个时间之间的差值,所以最后还需将计算到的最小值与最后时间与第一时间差值比较,找出最小值

代码

package String;

import java.util.List;

/**
* @Author OovEver
* @Date 2017/12/10 22:17
*/
public class LeetCode539 {
public int findMinDifference(List<String> timePoints) {
boolean[] mark = new boolean[24 * 60];
for(int i=0;i<timePoints.size();i++) {
String[] t = timePoints.get(i).split(":");
int h = Integer.parseInt(t[0]);
int m = Integer.parseInt(t[1]);
if (mark[h * 60 + m]) {
return 0;
}
mark[h * 60 + m] = true;
}
//        前一个数
int prev = 0;
int min = Integer.MAX_VALUE;
//        第一个数
int first = Integer.MAX_VALUE;
//        最后一个数
int last = Integer.MIN_VALUE;
for(int i=0;i<24*60;i++) {
if
4000
(mark[i]) {
//                如果前面有时间才可进行i-prev的判断
if (first != Integer.MAX_VALUE) {
min = Math.min(min, i - prev);
}
first = Math.min(first, i);
last = Math.max(last, i);
prev = i;
}
}
min = Math.min(min, 24 * 60 - last + first);
return min;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: