Zigzag Traverse

n, 1
function zigzagTraverse(matrix) {
const answer = [matrix[0][0]];
const rowLen = matrix.length;
const colLen = matrix[0].length;
let row = 0;
let col = 0;
while (true) {
if (row === rowLen - 1 && col === colLen - 1) break;
// going right
if (row === rowLen - 1 && col < colLen - 1) {
col += 1;
}
// going down
if(col === 0 && row < rowLen - 1) {
row += 1;
}
while (row >= 0 && col < colLen) {
answer.push(matrix[row][col]);
row--;
col++;
}
row++;
col--;
if (row === rowLen - 1 && col === colLen - 1) break;
// going down
if (col === colLen - 1 && row < rowLen - 1) {
row += 1;
}
// going right
if (row === 0 && col < colLen - 1) {
col += 1;
}
while (col >= 0 && row < rowLen) {
answer.push(matrix[row][col]);
row++;
col--;
}
row--;
col++;
if (row === rowLen - 1 && col === colLen - 1) break;
}
return answer;
}
// Do not edit the line below.
exports.zigzagTraverse = zigzagTraverse;another way
n, n
Last updated