Skip to content

Commit a454d88

Browse files
authored
Create 681-next-closest-time.js
1 parent aac251b commit a454d88

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

681-next-closest-time.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @param {string} time
3+
* @return {string}
4+
*/
5+
const nextClosestTime = function (time) {
6+
const [a, b, _, c, d] = time.split('').map((n) => parseInt(n))
7+
const min = Math.min(a, b, c, d)
8+
if ([a, b, c].some((n) => n > d)) {
9+
return [a, b, ':', c, Math.min(...[a, b, c].filter((n) => n > d))].join('')
10+
}
11+
if ([a, b, d].some((n) => n > c && n < 6)) {
12+
return [
13+
a,
14+
b,
15+
':',
16+
Math.min(...[a, b, d].filter((n) => n > c && n < 6)),
17+
min,
18+
].join('')
19+
}
20+
if ([a, c, d].some((n) => n > b && ((a == 2 && n < 4) || a < 2))) {
21+
return [
22+
a,
23+
Math.min(
24+
...[a, c, d].filter((n) => n > b && ((a == 2 && n < 4) || a < 2))
25+
),
26+
':',
27+
min,
28+
min,
29+
].join('')
30+
}
31+
if ([b, c, d].some((n) => n > a && n <= 2)) {
32+
return [[b, c, d].some((n) => n > a && n <= 2), min, ':', min, min].join('')
33+
}
34+
return [min, min, ':', min, min].join('')
35+
}

0 commit comments

Comments
 (0)