来源:力扣(LeetCode)
链接: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"

解题思路

将输入的时间进行排序,那么时间差就会出现在相邻的时间之间,遍历所有相邻的时间,找出最小值,值得注意的是,时间是可循环的,所以,最大的时间到次日最小时间也是需要考虑进去的。

代码展示

class Solution {
public:
int ToMinute(string s)
{
return (s[0] - '0') * 600 + (s[1] - '0') * 60 + (s[3] - '0') * 10 + s[4] - '0';
}
int findMinDifference(vector<string>& timePoints) {
int n = timePoints.size();
if(n > 1440) return 0;
sort(timePoints.begin(), timePoints.end());
int iLast = ToMinute(timePoints[0]);
int iMin = INT_MAX;
for(int i = 1; i < n; i++)
{
int iCur = ToMinute(timePoints[i]);
if(iCur - iLast < iMin)
{
iMin = iCur - iLast;
}
iLast = iCur;
}
if(1440 + ToMinute(timePoints[0]) - ToMinute(timePoints[n-1]) < iMin)
{
iMin = 1440 + ToMinute(timePoints[0]) - ToMinute(timePoints[n-1]);
}
return iMin;
}
};

运行结果

最新文章

  1. spring3种配置的比较
  2. C# 属性控件2
  3. SQL起别名
  4. Unity State Machine
  5. Eclipse常用开发插件
  6. Python自动化之rabbitmq rpc client端代码分析(原创)
  7. Find和FirstOrDefault()有什么区别?
  8. iframe父子页面调用小结
  9. BZOJ3463 : [COCI2012] Inspector
  10. Java字符串的那些事儿。。。。
  11. POJ 2653 Pick-up sticks(线段相交)
  12. 【转载】计算机视觉(CV)前沿国际国内期刊与会议
  13. openstack liberty 版本按照官方文档手动整合 完成后 基于dashboard-horizon 创建虚拟机报错 用CL却是成功的 网络等验证都是正确的通过启动的虚拟实例测试以成功
  14. 性能测试之LoardRunner 自动关联
  15. think in uml 1
  16. 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
  17. Zabbix实战-简易教程--监控OSPF
  18. 输入法设置,SublimeTest,putty掉线
  19. 基于struts2、hibernate、spring、shiro、MySQL的项目开发
  20. shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

热门文章

  1. 时间片差分调度法-充分利用MCU的资源
  2. 彻底弄懂Javascript模块导入导出
  3. 使用jquery—Canvas实现html5小游戏——《坦克大战》
  4. Spark详解(07-1) - SparkStreaming案例实操
  5. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(3)-再识Charles
  6. C++string与int的相互转换(使用C++11)
  7. 2023牛客寒假算法基础集训营1 ACDEFGHKLM
  8. 经典问题 1 —— DAG 上区间限制拓扑序
  9. Java基础学习笔记-运算符ヽ( ̄▽ ̄)و
  10. Java 进阶P-8.3+P-8.4