考虑Scala中的以下两个列表:
l1: List(List(4,6), List(17,20), List(27))
l2: List(1,6,11,16,26,30)
我想先从第二个列表l2
创建一个新列表l3: List(List(1,5), List(6,10), List(11,15), List(16,25), List(26,29), List(30))
之后我想找到两个列表(l1和l3)之间的重叠间隔 输出必须是:
List(List(4,5), List(6), list(17,20) list(27))
我发现这是为了验证两个列表之间是否存在过度重叠
def overlaps(x:List[Int],y:List[Int]) = (x contains y.lift(0)) || (y contains x.lift(0))
但我不知道如何扩展它来解决我的问题。 如果有任何最佳方法可以在不创建列表l3的情况下找到此结果,那么它对我来说是可能的。