找出一组区间的最大深度
Find the maximum depth of a set of intervals
给定一组区间I,[a_i,b_i]形式的每个元素,在O中找到最大深度的终点b_i (n*logn) 次。将 x 的深度定义为点 "stabs"(或相交)的间隔数。如果两个端点的深度相同,return较小的那个。
尝试:
我不知道如何在 O(n * logn) 时间内找到它。我了解用于查找一组间隔的刺集的贪婪算法,但是找到严格 O(n * log n) 时间的终点似乎非常不同。
我可以尝试首先对间隔进行排序,然后暴力破解最大深度终点,但这不能保证 O(n * log n) 时间。
您可以尝试以下方法:
- 对你的点 a_i 和 b_i 进行排序(一起在一个数组中)
- 遍历排序数组,当遇到 "a" 点(开始一个间隔)时增加计数器(深度)并减少 "b" 点(间隔结束) - 在这里你可以找到最大深度
的 "b" 点
给定一组区间I,[a_i,b_i]形式的每个元素,在O中找到最大深度的终点b_i (n*logn) 次。将 x 的深度定义为点 "stabs"(或相交)的间隔数。如果两个端点的深度相同,return较小的那个。
尝试:
我不知道如何在 O(n * logn) 时间内找到它。我了解用于查找一组间隔的刺集的贪婪算法,但是找到严格 O(n * log n) 时间的终点似乎非常不同。
我可以尝试首先对间隔进行排序,然后暴力破解最大深度终点,但这不能保证 O(n * log n) 时间。
您可以尝试以下方法:
- 对你的点 a_i 和 b_i 进行排序(一起在一个数组中)
- 遍历排序数组,当遇到 "a" 点(开始一个间隔)时增加计数器(深度)并减少 "b" 点(间隔结束) - 在这里你可以找到最大深度 的 "b" 点