LeetCode-539 最小时间差
2024-10-20 21:09:04
来源:力扣(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;
}
};
运行结果
最新文章
- spring3种配置的比较
- C# 属性控件2
- SQL起别名
- Unity State Machine
- Eclipse常用开发插件
- Python自动化之rabbitmq rpc client端代码分析(原创)
- Find和FirstOrDefault()有什么区别?
- iframe父子页面调用小结
- BZOJ3463 : [COCI2012] Inspector
- Java字符串的那些事儿。。。。
- POJ 2653 Pick-up sticks(线段相交)
- 【转载】计算机视觉(CV)前沿国际国内期刊与会议
- openstack liberty 版本按照官方文档手动整合 完成后 基于dashboard-horizon 创建虚拟机报错 用CL却是成功的 网络等验证都是正确的通过启动的虚拟实例测试以成功
- 性能测试之LoardRunner 自动关联
- think in uml 1
- 基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多
- Zabbix实战-简易教程--监控OSPF
- 输入法设置,SublimeTest,putty掉线
- 基于struts2、hibernate、spring、shiro、MySQL的项目开发
- shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
热门文章
- 时间片差分调度法-充分利用MCU的资源
- 彻底弄懂Javascript模块导入导出
- 使用jquery—Canvas实现html5小游戏——《坦克大战》
- Spark详解(07-1) - SparkStreaming案例实操
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(3)-再识Charles
- C++string与int的相互转换(使用C++11)
- 2023牛客寒假算法基础集训营1 ACDEFGHKLM
- 经典问题 1 —— DAG 上区间限制拓扑序
- Java基础学习笔记-运算符ヽ( ̄▽ ̄)و
- Java 进阶P-8.3+P-8.4