zoukankan      html  css  js  c++  java
  • 539. Minimum Time Difference

    Given a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minutes difference between any two time points in the list.

    Example 1:

    Input: ["23:59","00:00"]
    Output: 1
    

     Note:

    1. The number of time points in the given list is at least 2 and won't exceed 20000.
    2. The input time is legal and ranges from 00:00 to 23:59.

    题目含义:给定一定24格式的Hour:Minutes字符,找到任意两个时间点的最小时间差

     1     public int findMinDifference(List<String> timePoints) {
     2         boolean[] minutes = new boolean[24 * 60];
     3         for (String time : timePoints) {
     4             String[] values = time.split(":");
     5             int minute = Integer.valueOf(values[0]) * 60 + Integer.valueOf(values[1]);
     6             if (minutes[minute]) return 0;
     7             minutes[minute] = true;
     8         }
     9         int min = Integer.MAX_VALUE, left = Integer.MAX_VALUE, right = Integer.MIN_VALUE;
    10         int previous = 0;//上一个时间值
    11         for (int i = 0; i < minutes.length; i++) {
    12             if (!minutes[i]) continue;
    13             if (left != Integer.MAX_VALUE) {
    14                 min = Math.min(min, i - previous);//min记录了最小的时间差
    15             }
    16             left = Math.min(left, i);//距离零点最近的点
    17             right = Math.max(right, i);//距离零点最远的点
    18             previous = i;
    19         }
    20         return Math.min(min, 24 * 60 - right + left);     
    21     }
  • 相关阅读:
    Android进程生命周期与ADJ
    四大组件之综述
    Linux进程pid分配法
    Linux的进程管理
    Linux硬盘管理
    Linux用户管理
    Linux命令行使用
    vim技巧5 常用操作
    vim技巧4 删除/保留文本中匹配行
    如何绘制UML图?
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7686352.html
Copyright © 2011-2022 走看看