给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。

    示例 1:
    输入:timePoints = [“23:59”,”00:00”]
    输出:1
    示例 2:
    输入:timePoints = [“00:00”,”23:59”,”00:00”]
    输出:0

    1. /**
    2. * @param {string[]} timePoints
    3. * @return {number}
    4. */
    5. var findMinDifference = function (timePoints) {
    6. // 转成分钟来做,24 小时 24 * 60 = 1440
    7. if (timePoints.length > 1440) return 0;
    8. let min = 1440;
    9. const arr = timePoints.map(item => {
    10. // 拆分 转成数字
    11. let a = item.split(':');
    12. return a[0] * 60 + a[1] * 1
    13. })
    14. // 对arr 进行排序
    15. arr.sort((a, b) => a - b);
    16. for (let i = 1; i < arr.length; i += 1) {
    17. // 小于说明在一天之内,取差值
    18. if (arr[i] - arr[i - 1] < min) {
    19. min = arr[i] - arr[i - 1]
    20. }
    21. }
    22. // 取顺逆时针最小值
    23. return Math.min(min, arr[0] + 1440 - arr[arr.length - 1])
    24. };

    image.png