我的scala列表如下
List(12,14,16,18,20,22,28,30)
现在我的预期输出是以这种方式查找与30-28=2,28-22=6,22-20=2....
之类的反向顺序列表的差异所以我的新列表将是
List(2,6,2,2,2,2,2)
从此列表中获取最常见的值,因此在这种情况下,最小差异为2,因此最终输出将是最小差异,即2。
答案 0 :(得分:7)
只是要有sliding
的解决方案。 :)
List(12,14,16,18,20,22,28,30).sliding(2).map(l => l(1) - l(0)).min
答案 1 :(得分:3)
您可以zip
列表及其尾部,以获得l zip l.tail
或(l, l.tail).zipped
的元素对。
val l = List(12,14,16,18,20,22,28,30)
(l, l.tail).zipped.map{ (a, b) => math.abs(a - b) }.min
// 2