最小时间差
xiqe opened this issue · comments
最小时间差
给定一个 24 小时制(小时:分钟)的时间列表,找出列表中任意两个时间的最小时间差并已分钟数表示。
示例 1:
输入: ["23:59","00:00"]
输出: 1
备注:
- 列表中时间数在 2~20000 之间。
- 每个时间取值在 00:00~23:59 之间。
reply
var findMinDifference = function(timePoints) {
// 先将时间转换为数字升序排序
let arr = timePoints.map(x=>{
return Number(x.substring(0,2))*60+Number(x.substring(3))
}).sort((a,b)=>a-b);
let min;
// 遍历进行对比,注意最后一个值需要与第一个来进行计算
for(let i=0;i<arr.length;i++){
let v;
if(i == arr.length-1){
// 如果是最后一项,需要与arr[0]比较
v = 60*24 - arr[i] + arr[0];
} else {
// 如果非最后一项,当前项与后一项比较
v = arr[i+1] - arr[i];
}
if(min==undefined)min = v;
if(min>v)min = v;
}
return min
};