object CommonElementMatrix {
def findCommonElementInMatrixRows(matrix: Array[Array[Int]]): Int = {
val rows = matrix.length
if (rows == 0) return -1
val cols = matrix(0).length
val freq = scala.collection.mutable.Map[Int, Int]()
for (i <- 0 until rows) {
freq(matrix(i)(0)) = freq.getOrElse(matrix(i)(0), 0) + 1
for (j <- 1 until cols) {
if (matrix(i)(j) != matrix(i)(j - 1)) {
val value = matrix(i)(j)
freq(value) = freq.getOrElse(value, 0) + 1
}
}
}
freq.find { case (_, count) => count == rows } match {
case Some((key, _)) => key
case None => -1
}
}
def main(args: Array[String]): Unit = {
val matrix = Array(
Array(1, 2, 3, 5, 36),
Array(4, 5, 7, 9, 10),
Array(5, 6, 8, 9, 18),
Array(1, 3, 5, 8, 24)
)
val result = findCommonElementInMatrixRows(matrix)
if (result != -1)
println(s"Common element in all rows: $result")
else
println("No common element found in all rows.")
}
}
/*
run:
Common element in all rows: 5
*/