首页 > 解决方案 > 找到至少具有 X 长度的第一个区间的算法

问题描述

给定以下有序间隔:

[0, 2.99], [5 - 7.9], [23 - 24.99], [34 - 48.99]

如何找到从 4.9 开始至少长度为 4 的第一个间隔?在这种情况下,正确的区间是 [34 - 48.99]

循环遍历所有间隔不是解决方案,因为间隔的数量可能非常高

编辑:

@idz 抱歉,细节很差。这些间隔是日期时间,它们从今天午夜开始,并以 59 递增,例如:

注意第三和第四间隔之间的差距

23/10/2020 00:00 to 23/10/2020 00:59 is converted to [0, 59]
23/10/2020 01:00 to 23/10/2020 01:59 is converted to [60, 119]
23/10/2020 02:00 to 23/10/2020 02:59 is converted to [120, 179] 
23/10/2020 07:00 to 23/10/2020 07:59 is converted to [420, 479]

当一切开始时,它是一个单一的区间,即 [0 - 479]

在最初的问题中,为了简单起见,我还省略了一个细节:两个间隔之间的长度不是右极 - 左极之间的差异,而是它们之间有多少个单独的日期时间。即:
0 - 479 长度为 4
120 - 479 长度为 2

谢谢

标签: algorithmdata-structuresintervals

解决方案


推荐阅读