【发布时间】:2021-08-13 07:45:57
【问题描述】:
给定一个有序的pair序列,如果元素是连续的或更小的,我会组合它们,如果不是,则跳过。 例如: 如果 A = Seq((1,2),(3,4),(5,6),(8,10)(11,15))
输出应该是 Seq((1,6),(8,15))
因为当前条目的最后一个元素与下一个条目的第一个元素是连续的
如果 B = Seq((1,4),(3,5),(6,7),(9,10)(11,15))
输出应该是 Seq((1,7),(9,15))
因为当前条目的最后一个元素小于下一个条目的第一个元素
我尝试了类似的方法:
val finalOut = mySeq.sliding(2).map {
case Array(x, y, _*) => (x, y, (x._2 - y._1))
}.toList
这样做的问题是它一次只需要 2 个元素,而我们需要继续遍历,除非连续性存在间隙。我不确定如何在 scala 中获得它。
我也尝试实现 for 循环,但这也无济于事,因为它一次处理一个元素,并且无助于跟踪其他元素或计数器,如 c++。
【问题讨论】:
标签: arrays scala loops sorting tuples