Python解Leetcode: 539. Minimum Time Difference
2024-09-05 05:27:30
题目描述:给定一个由时间字符组成的列表,找出任意两个时间之间最小的差值。
思路:
- 把给定的链表排序,并且在排序的同时把60进制的时间转化成十进制整数;
- 遍历排序的数组,求出两个相邻值之间的差值;
- 求出首尾两个值之间的差值。
class Solution(object):
def findMinDifference(self, timePoints):
"""
:type timePoints: List[str]
:rtype: int
"""
t = sorted(int(t[:2]) * 60 + int(t[-2:]) for t in timePoints)
ret = 100000
length = len(t)
for i in range(length - 1):
poor = t[i+1] - t[i]
if poor < ret:
ret = poor
last = t[-1] - t[0] if t[-1]-t[0] <= 720 else 1440 - (t[-1]-t[0])
ret = last if last < ret else ret
return ret
以上解决办法思路没问题,但是代码写出来不是很优,发现有大神写的,充分利用了Python的zip,很Pythonic,如下:
class Solution(object):
def findMinDifference(self, timePoints):
"""
:type timePoints: List[str]
:rtype: int
"""
t = sorted(int(t[:2]) * 60 + int(t[-2:]) for t in timePoints)
t.append(t[0] + 1440)
return min(b - a for a, b in zip(t, t[1:]))
最新文章
- Block解析(iOS)
- Oracle 建表,递增序列,触发器,分析函数row_number() ,partition by 子句。
- EasyUI中页面必须刷新才显示tree组件最新数据的BUG解决方案
- [c#基础]DataTable的Select方法
- Binary Search
- struts2中constant参数设置
- 细谈Java
- App Store审核指南中文版(2014.10.11更新)
- jQuery图片延迟加载插件
- jquery上传控件uploadify使用备忘
- android AsyncTask介绍 转载
- 【集美大学1411_助教博客】团队作业7——Alpha冲刺之事后诸葛亮
- [转]Prometheus 与 Grafana 实现服务器运行状态监控
- 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其二)
- 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例
- JavaScript: DOM Docunment
- DevExpress ASP.NET Bootstrap Controls v18.2新功能详解(二)
- MySQL 在各种程序语音的连接字符串(转)
- oracle常用&; to_date()怎么转换带am pm的时间格式
- AHB-Lite简介