539. 最小时间差

作者: 名字是乱打的 | 来源:发表于2022-01-19 00:32 被阅读0次

    一 .题目

    二 .思路

    • 仿时间戳,以分钟为单位把每个时间的时间戳给计算出来
    • 这里要计算当前时间和当前时间后一天这个时间点的的时间,主要是为了防止跨夜计算的情况,比如题目里的输入: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;
            }
        }
    

    相关文章

      网友评论

        本文标题:539. 最小时间差

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