此博客链接:
最小时间差
题目链接: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); } }
结果
我感觉自己在把字符串转成字符串数组的时候没有错,但是程序还是报错。