📅  最后修改于: 2023-12-03 15:06:38.247000             🧑  作者: Mango
在编程中,我们经常需要查找一些范围的交集。但是有时候我们不需要查找所有范围的交集,而只需要查找包含至少一个元素的最小范围。这种情况下,我们可以使用以下算法来查找最小范围。
下面是算法的 Python 代码实现:
def find_min_range(ranges):
ranges.sort()
min_range = ranges[0]
for r in ranges[1:]:
if r[0] <= min_range[1]:
min_range = (min_range[0], max(min_range[1], r[1]))
else:
break
return min_range
以下示例展示了如何使用上述算法来查找包含至少一个元素的最小范围。
ranges = [(1, 3), (4, 6), (2, 7), (8, 10)]
min_range = find_min_range(ranges)
print(min_range) # (1, 7)
在上面的示例中,输入的范围为 [(1, 3), (4, 6), (2, 7), (8, 10)],输出的最小范围为 (1, 7)。
使用上述算法可以高效地查找包含至少一个元素的最小范围。算法的时间复杂度为 O(nlogn),其中 n 是范围的数量。