美文网首页
539. Minimum Time Difference

539. Minimum Time Difference

作者: matrxyz | 来源:发表于2018-01-13 16:23 被阅读0次

    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
    

    Note:
    The number of time points in the given list is at least 2 and won't exceed 20000.
    The input time is legal and ranges from 00:00 to 23:59.

    Solution:Bucket

    思路:
    Time Complexity: O(N) Space Complexity: O(24 * 60)

    Solution Code:

    public class Solution {
        public int findMinDifference(List<String> timePoints) {
            boolean[] mark = new boolean[24 * 60];
            for (String time : timePoints) {
                String[] t = time.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, min = Integer.MAX_VALUE;
            int first = Integer.MAX_VALUE, last = Integer.MIN_VALUE;
            for (int i = 0; i < 24 * 60; i++) {
                if (mark[i]) {
                    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;
        }
    }
    

    相关文章

      网友评论

          本文标题:539. Minimum Time Difference

          本文链接:https://www.haomeiwen.com/subject/gbicoxtx.html