我想知道从数字列表中识别Scala中连续数字和最大数字模式的逻辑是什么。例如,如果
val x =列表(1,2,3,8,15,26)
然后函数的输出应为
val y = List(3,8,15,26)其中3是1,2,3的最大值,它是连续数字的序列。 8,15,26不是连续的,因此这些数字没有改变。
位置无关紧要,这意味着,我可以对列表进行排序,然后识别序列。
如何解决这个问题?
答案 0 :(得分:3)
对x
进行排序后,您可以执行以下操作。
(x :+ x.last).sliding(2).filter(p => p(0) != p(1)-1).map(_(0)).toList