10 lines
354 B
Scala
10 lines
354 B
Scala
import scala.collection.breakOut
|
|
import scala.collection.generic.CanBuildFrom
|
|
def mode
|
|
[T, CC[X] <: Seq[X]](coll: CC[T])
|
|
(implicit o: T => Ordered[T], cbf: CanBuildFrom[Nothing, T, CC[T]])
|
|
: CC[T] = {
|
|
val grouped = coll.groupBy(x => x).mapValues(_.size).toSeq
|
|
val max = grouped.map(_._2).max
|
|
grouped.filter(_._2 == max).map(_._1)(breakOut)
|
|
}
|