标签:differ int 时间差 60 time curDiffer Leetcode 539 size
Leetcode 539. 最小时间差
难度
中等
题目
https://leetcode-cn.com/problems/minimum-time-difference/
解法
排序
现将time从小到大排序,然后依次在相邻的time中找到最小值。
要注意头尾需要进行一次比较,因为24小时制的时间是一个环。
还需要判断一下list的size,如果size>24*60的话,说明里面一定有重复的时间,直接返回0。
class Solution {
public int findMinDifference(List<String> time) {
int size = time.size();
if(size> 24 * 60)
return 0;
Collections.sort(time);
int differ = Integer.MAX_VALUE;
for (int i = 0; i < time.size(); i++) {
int h1 = Integer.parseInt(time.get(i % size).substring(0, 2));
int m1 = Integer.parseInt(time.get(i % size).substring(3));
int h2 = Integer.parseInt(time.get((i + 1) % size).substring(0, 2));
int m2 = Integer.parseInt(time.get((i + 1) % size).substring(3));
int curDiffer = Math.abs(h2 * 60 + m2 - h1 * 60 - m1);
if (curDiffer > 24 * 60 / 2)
curDiffer = Math.abs(24 * 60 - curDiffer);
differ = curDiffer < differ ? curDiffer : differ;
}
return differ;
}
}
标签:differ,int,时间差,60,time,curDiffer,Leetcode,539,size 来源: https://www.cnblogs.com/miao123-blog/p/15818044.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。