Существует список [List [Int]] простых факторов для целых чисел 2..12:
List(List(2), List(3), List(2, 2), List(5), List(3, 2),
List(7), List(2, 2, 2), List(3, 3), List(5, 2),
List(11), List(3, 2, 2))
Он должен быть сведен так, чтобы результирующая структура данных содержала только самую длинную последовательность (наибольшую мощность) каждого простого числа:
List(2,2,2,3,3,5,7,11)
Например, исключая все, кроме величайшей силы двух:
Список (Список ( 2 ), Список (3), Список ( 2, 2 ), Список (5), Список (3 , 2 ),
Список (7), Список ( 2, 2, 2 ), Список (3, 3), Список (5 , 2 ),
Список (11), Список (3 , 2, 2 ))
В исходном списке подсписки простых чисел всегда сортируются в порядке убывания.
Пытается найти элегантное, предпочтительно ≤O (n) решение.
Мое решение далеко от идеального:
xs.flatMap(l=> l.groupBy(x=>x)).map(x=>(x._1,x._2.length)).
groupBy(_._1).mapValues(_.maxBy(_._2)).values.
map(x=>List.fill(x._2) (x._1)).flatten