最好的解释方法是举例: 数据:[1,5]、[2,7]、[9,12]
输入:4 输出:[[1,5],[2,7]]
输入:8 输出:[]
输入:11 输出:[[9,12]]
是否有高效的 Java/Kotlin 来实现这一点? (也不会使 GC 超载)
如果你想要快并且有足够的内存,你可以做下一步。
对于每个范围保留 3 个列表:
对范围进行排序,以便您可以找到覆盖目标点的最短范围。
返回组 1 中的所有范围。过滤组 2 和组 3 以查找覆盖范围(您可以对它们列表进行排序以加快搜索速度)。
性能取决于结果中的范围数量。