Print matrix spiral
by Alex Myronov
JavaScript
const matrix = [
[1, 2, 3, 4, 5],
[16, 17, 18, 19, 6],
[15, 24, 25, 20, 7],
[14, 23, 22, 21, 8],
[13, 12, 11, 10, 9],
]
const printSpiral = (mx) => {
const rows = mx.length
const cols = mx[0].length
let rowStart = 0
let rowEnd = rows - 1
let colStart = 0
let colEnd = cols - 1
while (rowStart <= rowEnd || colStart <= colEnd) {
for (let i = colStart; i <= colEnd; i++) {
console.log(mx[rowStart][i] + ' - ')
}
rowStart++
for (let i = rowStart; i <= rowEnd; i++) {
console.log(mx[i][colEnd] + ' - ')
}
colEnd--
for (let i = colEnd; i >= colStart; i--) {
console.log(mx[rowEnd][i] + ' - ')
}
rowEnd--
for (let i = rowEnd; i >= rowStart; i--) {
console.log(mx[i][colStart] + ' - ')
}
colStart++
}
}
printSpiral(matrix)