Solución

@kappa_cat·5/5/2026TypeScript
solution.tsTypeScript
export function generateSpiralMatrix(n: number): number[][] {
  if (n === 1) return [[1]]

  const matrix = Array.from({ length: n }, () => Array(n).fill(0)) // Fill empty matrix with zeros

  // Limits
  let top = 0
  let left = 0
  let bottom = n - 1
  let right = n - 1

  let increasingNum = 1

  while (top <= bottom && left <= right) {
    // >> to right
    for (let i = left; i <= right; i++) {
      matrix[top][i] = increasingNum++
    }
    top++

    // >> to bottom
    for (let i = top; i <= bottom; i++) {
      matrix[i][right] = increasingNum++
    }
    right--

    // >> to left
    for (let i = right; i >= left; i--) {
      matrix[bottom][i] = increasingNum++
    }
    bottom--

    // >> to top
    for (let i = bottom; i >= top; i--) {
      matrix[i][left] = increasingNum++
    }
    left++
  }

  return matrix;
}
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.