• 题目描述:给定一个由时间字符组成的列表,找出任意两个时间之间最小的差值。

  • 思路:

  1. 把给定的链表排序,并且在排序的同时把60进制的时间转化成十进制整数;
  2. 遍历排序的数组,求出两个相邻值之间的差值;
  3. 求出首尾两个值之间的差值。
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:]))

最新文章

  1. Block解析(iOS)
  2. Oracle 建表,递增序列,触发器,分析函数row_number() ,partition by 子句。
  3. EasyUI中页面必须刷新才显示tree组件最新数据的BUG解决方案
  4. [c#基础]DataTable的Select方法
  5. Binary Search
  6. struts2中constant参数设置
  7. 细谈Java
  8. App Store审核指南中文版(2014.10.11更新)
  9. jQuery图片延迟加载插件
  10. jquery上传控件uploadify使用备忘
  11. android AsyncTask介绍 转载
  12. 【集美大学1411_助教博客】团队作业7——Alpha冲刺之事后诸葛亮
  13. [转]Prometheus 与 Grafana 实现服务器运行状态监控
  14. 【C#】读取Excel中嵌套的Json对象,Json带斜杠的问题(其二)
  15. 《FPGA全程进阶---实战演练》第三十二章 Signal Tap II 应用实例
  16. JavaScript: DOM Docunment
  17. DevExpress ASP.NET Bootstrap Controls v18.2新功能详解(二)
  18. MySQL 在各种程序语音的连接字符串(转)
  19. oracle常用&amp; to_date()怎么转换带am pm的时间格式
  20. AHB-Lite简介

热门文章

  1. 牛客 17439:Endless Pallet
  2. ZOJ 3182 HDU 2842递推
  3. ubuntu14.0 更改默认python为3.5 并安装tensorflow(cpu)
  4. apt update时出现签名无法验证,公钥失效的解决办法
  5. Mysql备份恢复方案解析
  6. cas系列-cas server demo搭建(二)
  7. THREE.js(一)
  8. 性能分析 | Java进程CPU占用高导致的网页请求超时的故障排查
  9. cls只能调用一次实例 第二次None
  10. Qt编写自定义控件29-颜色选取面板