539. 最小时间差
解题过程
INFO
题目链接 给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。
javascript
/**
* @link https://leetcode.cn/problems/minimum-time-difference/
* @title 539. 最小时间差
* @description 给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示
* @param {string[]} timePoints
* @return {number}
*/
// 解法一
// 思路:遍历时间表转换成分钟然后进行有小到大排序,再遍历数据两两就和对比最小值即可,注意最后返回还需要进行一次判断,防止最小值跟最大值是零点上下差距
var findMinDifference = function(timePoints) {
const arr = timePoints.map(item => {
let times = item.split(':')
return parseInt(times[0]) * 60 + parseInt(times[1])
})
arr.sort((a, b) => a - b)
const maxMin = 1440
let min = maxMin
for (let i = 1; i < arr.length; i++) {
min = Math.min(min, arr[i] - arr[i - 1])
}
return Math.min(min, arr[0] + maxMin - arr[arr.length - 1])
}
// const result = findMinDifference(["23:59","00:00"]) // 1
// const result = findMinDifference(["00:00","23:59","00:00"]) // 0
// const result = findMinDifference(["01:01","02:01","03:00"]) // 59
// const result = findMinDifference(["12:01","00:10","00:01"]) // 9
const result = findMinDifference(["05:31","22:08","00:35"]) // 147
console.log(result)
解题感受
🐑 的第二天,状态不是很好,只写了一种解法,不过目前也只想到一种了,看了跟官方解题思路方法一差不多,解这种题目,基本思路也是通过大小排序,然后两两计算最小值,然后首尾计算最小值就好了