最小时间差

此博客链接:

最小时间差

题目链接:https://leetcode-cn.com/problems/minimum-time-difference/

题目

给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。

示例 1:

输入:timePoints = ["23:59","00:00"]
输出:1
示例 2:

输入:timePoints = ["00:00","23:59","00:00"]
输出:0
 

提示:

2 <= timePoints <= 2 * 104
timePoints[i] 格式为 "HH:MM"

题解

思路:

遍历数组,小时和小时做差,找到最小的差值,分钟和分钟做差值,找到最小的差值。

这里需要注意,小时和分钟的转换。小时之间的差值需要注意差值是否大于12小时,因为大于12小时后,

代码

class Solution {
    public int findMinDifference(List<String> timePoints) {
         int temp1=12;
         int temp2=30;
        //  int tem0[]=new int[2];
        //     int tem[]=new int[2];
         for(int i=1;i<timePoints.size();i++)
         {
             String tem0[]=timePointsget.get(i-1).split(":");
             String tem[]=timePoints.get(i).split(":");
             int tem1=Integer.parseInt(tem0[0])-Integer.parseInt(tem[0]);//小时
             int tem2=Integer.parseInt(tem0[1])-Integer.parseInt(tem[1]);//分钟
             if(tem1>12)
            {
                tem1=24-tem1;
                if(tem1<temp1)    
                {
                    temp1=tem1;
                }  
            }
            if(tem2>30)
            {
                tem2=60-tem2;
                if(tem2<temp1)    
                {
                    temp2=tem2;
                }  
            }

         }
             
         return Math.min(temp1,temp2);
    }
}

结果

 

 我感觉自己在把字符串转成字符串数组的时候没有错,但是程序还是报错。

出来混总是要还的
原文地址:https://www.cnblogs.com/ping2yingshi/p/14776699.html