Solución
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