zoukankan      html  css  js  c++  java
  • Leedcode刷题 539. 最小时间差


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

    思路:

      先将String列表中的时间全部化为分钟数,然后排序,然后for循环寻找最小差值

     注意:不要忘记比较末尾和首部的差值,如测试用例

    class Solution {
        public int findMinDifference(List<String> timePoints) {
            int min=Integer.MAX_VALUE;//定义最小值
            int []minute=new int [timePoints.size()];//创建存放分钟数的数组
            for(int i=0;i<timePoints.size();i++)
                minute[i]=Integer.valueOf(timePoints.get(i).substring(0,2)) * 60+Integer.valueOf(timePoints.get(i).substring(3,5));
    //用到list.get(i)来访问列表元素 和substring(int a,int b)来截取子串 后转化为Integer再乘60 存入数组中,0-2是小时,3-5是分钟
      
        Arrays.sort(minute);//排序
    for(int i=0;i<minute.length-1;i++){
                min=Math.min(min,minute[i+1]-minute[i]);//寻找最小差值
            }
            return Math.min(min,1440-minute[minute.length-1]+minute[0]);//再将最小值和 (末尾减开头)作比较
        }
    }
  • 相关阅读:
    26. 删除排序数组中的重复项
    巧记“指针数组”与“数组指针”
    在 VC 下清空键盘缓冲区的方法
    负数、取模与取余
    任意键开始、暂停
    int 越界处理
    防闪屏批量绘图
    VC 下如何正确的创建及管理项目
    CSDN博客步骤:
    61 扑克牌中的顺子
  • 原文地址:https://www.cnblogs.com/nilbook/p/13432208.html
Copyright © 2011-2022 走看看