剑指 Offer II 035. 最小时间差

- 如图ASCII码表,可以利用它排序,两个数字字符串作差也可以利用它
- 需要注意的是
res = Math.min(res, p1 + 1440 - p2);,最优值,然后对首位值做个比较
var findMinDifference = function (time) {
time.sort();
var res = Number.MAX_VALUE;
var p1 = getMinutes(time[0]);
var p2 = p1;
for (var i = 1; i < time.length; ++i) {
var minutes = getMinutes(time[i]);
res = Math.min(res, minutes - p2);
p2 = minutes;
}
res = Math.min(res, p1 + 1440 - p2);
return res;
};
var getMinutes = (arr) => {
return (
((arr[0].charCodeAt() - "0".charCodeAt()) * 10 +
(arr[1].charCodeAt() - "0".charCodeAt())) *
60 +
(arr[3].charCodeAt() - "0".charCodeAt()) * 10 +
(arr[4].charCodeAt() - "0".charCodeAt())
);
};