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 generate an n x n matrix filled with elements from 1 to N^2 in spiral order in Scala

1 Answer

0 votes
object SpiralMatrixGenerator {

  def generateSpiralMatrix(n: Int): Array[Array[Int]] = {
    val matrix = Array.ofDim[Int](n, n)
    var top = 0
    var bottom = n - 1
    var left = 0
    var right = n - 1
    var num = 1

    while (top <= bottom && left <= right) {
      // Fill top row
      for (i <- left to right) {
        matrix(top)(i) = num
        num += 1
      }
      top += 1

      // Fill right column
      for (i <- top to bottom) {
        matrix(i)(right) = num
        num += 1
      }
      right -= 1

      // Fill bottom row
      if (top <= bottom) {
        for (i <- right to left by -1) {
          matrix(bottom)(i) = num
          num += 1
        }
        bottom -= 1
      }

      // Fill left column
      if (left <= right) {
        for (i <- bottom to top by -1) {
          matrix(i)(left) = num
          num += 1
        }
        left += 1
      }
    }

    matrix
  }

  def main(args: Array[String]): Unit = {
    val n = 3
    val matrix = generateSpiralMatrix(n)

    for (row <- matrix) {
      println(row.mkString(" "))
    }
  }
}


 
/*
run:

1 2 3
8 9 4
7 6 5

*/

 



answered Jun 25, 2025 by avibootz
...