Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,788 questions

51,694 answers

573 users

How to rotate square matrix 90 degrees to the left in Scala

1 Answer

0 votes
object MatrixRotation {

  def printMatrix(matrix: Array[Array[Int]]): Unit = {
    matrix.foreach(row => println(row.mkString(" ")))
  }

  /**
   * Rotates a square matrix 90 degrees to the left (counterclockwise).
   * param matrix - The square matrix to rotate.
   */
  def rotateMatrix90DegreesLeft(matrix: Array[Array[Int]]): Unit = {
    val len = matrix.length

    // Validate input: Ensure it's a square matrix
    if (!matrix.forall(_.length == len)) {
      throw new IllegalArgumentException("Input must be a square matrix.")
    }

    // Perform the rotation in-place
    for (layer <- 0 until len / 2) {
      val first = layer
      val last = len - 1 - layer

      for (i <- first until last) {
        val offset = i - first

        // Save the top element
        val top = matrix(first)(i)

        // Move right to top
        matrix(first)(i) = matrix(i)(last)

        // Move bottom to right
        matrix(i)(last) = matrix(last)(last - offset)

        // Move left to bottom
        matrix(last)(last - offset) = matrix(last - offset)(first)

        // Move top to left
        matrix(last - offset)(first) = top
      }
    }
  }

  def main(args: Array[String]): Unit = {
    val matrix = Array(
      Array(1, 2, 3),
      Array(4, 5, 6),
      Array(7, 8, 9)
    )

    rotateMatrix90DegreesLeft(matrix)

    println("Matrix After 90° Left Rotation:")
    printMatrix(matrix)
  }
}



/*
run:

Matrix After 90° Left Rotation:
3 6 9
2 5 8
1 4 7

*/

 



answered Oct 6, 2025 by avibootz
...