文章目录
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
*/