0
点赞
收藏
分享

微信扫一扫

leetcode之时间系列算法

星巢文化 2022-05-05 阅读 46

文章目录

leetcode之时间系列算法

1.最小时间差

func findMinDifference(timePoints []string) int {
a :=len(timePoints)
      n :=a*2
     nums :=make([]int, n)
    //注意:这里不能写成i :=0,ans :=0
  for i,ans  :=0,0; i<a ;i++{
      s :=strings.Split(timePoints[i],":")
        h,_ :=strconv.Atoi(s[0])         
        m,_ :=strconv.Atoi(s[1])
        nums[ans] = h*60+ m //这个是当前分针所属位置
        nums[ans+1] = nums[ans] + 1440 //这个是当前分针转一圈后所处的位置
        ans =ans+2
  }
  sort.Ints(nums)
  cha :=  nums[1]-nums[0]
  for i:=1 ; i<n-1;i++{
      if (nums[i+1]-nums[i]) <cha{
              cha =nums[i+1]-nums[i]
      }
  }

return cha
}
//把钟表想象成一个只有分针的表,即共有1440个针   ;  两圈的话是2880个针
//方法:排序及求整型数组的最小差值
/*
排序前
[1391,2831,742,2182,690,2130]
排序后
[690,742,1391,2130,2182,2831]

0    0  1
 1     2  3
 2    4  5
 3    7
 4     9
*/

image-20220118110040456

举报

相关推荐

0 条评论