Skip to content

Commit 0f6a73f

Browse files
committed
add minimum-time-difference script.
1 parent c55f16d commit 0f6a73f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

539-minimum-time-difference.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* @param {string[]} timePoints
3+
* @return {number}
4+
*/
5+
const findMinDifference = function(timePoints) {
6+
const sortedArr = timePoints
7+
.map(el => {
8+
const arr = el.trim().split(":");
9+
return arr[0] === "00" && arr[1] === "00"
10+
? 24 * 60
11+
: +arr[0] * 60 + +arr[1];
12+
})
13+
.sort((a, b) => a - b);
14+
let prev = sortedArr[0];
15+
let res = Number.MAX_SAFE_INTEGER;
16+
const mid = 12 * 60;
17+
for (let i = 1; i < sortedArr.length; i++) {
18+
res = Math.min(res, Math.abs(sortedArr[i] - prev));
19+
prev = sortedArr[i];
20+
}
21+
if (sortedArr[0] < mid && sortedArr[sortedArr.length - 1] > mid) {
22+
res = Math.min(
23+
res,
24+
sortedArr[0] + 2 * mid - sortedArr[sortedArr.length - 1]
25+
);
26+
}
27+
return res;
28+
};
29+
30+
console.log(findMinDifference(["23:59", "00:00"]));
31+
console.log(findMinDifference(["12:12", "00:13"]));
32+
console.log(findMinDifference(["05:31", "22:08", "00:35"]));

0 commit comments

Comments
 (0)