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,985 questions

51,929 answers

573 users

How to generate an n x n matrix filled with elements from 1 to N^2 in spiral order in TypeScript

1 Answer

0 votes
function generateSpiralMatrix(n: number): number[][] {
  const matrix: number[][] = Array.from({ length: n }, () => Array(n).fill(0));
  let top: number = 0, bottom: number = n - 1;
  let left: number = 0, right: number = n - 1;
  let num: number = 1;

  while (top <= bottom && left <= right) {
    // Fill top row
    for (let i: number = left; i <= right; i++) {
      matrix[top][i] = num++;
    }
    top++;

    // Fill right column
    for (let i: number = top; i <= bottom; i++) {
      matrix[i][right] = num++;
    }
    right--;

    // Fill bottom row
    if (top <= bottom) {
      for (let i: number = right; i >= left; i--) {
        matrix[bottom][i] = num++;
      }
      bottom--;
    }

    // Fill left column
    if (left <= right) {
      for (let i: number = bottom; i >= top; i--) {
        matrix[i][left] = num++;
      }
      left++;
    }
  }

  return matrix;
}

const n: number = 3;
const spiralMatrix: number[][] = generateSpiralMatrix(n);

// Print the matrix
spiralMatrix.forEach(row => {
  console.log(row.join(" "));
});


     
/*
run:
     
"1 2 3" 
"8 9 4" 
"7 6 5" 
     
*/

 



answered Jun 25, 2025 by avibootz
...