0
点赞
收藏
分享

微信扫一扫

【Leetcode-2022.1.18】539. 最小时间差

539. 最小时间差
题目:给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。
输入:timePoints = [“23:59”,“00:00”]
输出:1
方法一:转换成分钟

class Solution {
    public int findMinDifference(List<String> timePoints) {
        int[] time = new int[timePoints.size()];
        for(int i = 0; i < timePoints.size(); i++){
            time[i] = Integer.parseInt(timePoints.get(i).substring(0,2))*60 +  Integer.parseInt(timePoints.get(i).substring(3,5));
        }
        if (timePoints.size() > 1440) return 0;//鸽巢原理,说明每个时刻都至少一个,那么一定会有重复,可以提前结束
        Arrays.sort(time);
        int ans = Integer.MAX_VALUE;
        for(int i = 1; i < time.length; i++){
            ans = Math.min(ans,time[i] - time[i - 1]);
        }
        return Math.min(ans,1440 - (time[time.length - 1] - time[0]));
    }
}
举报

相关推荐

0 条评论