题解 | #顺时针打印矩阵#
顺时针打印矩阵
https://www.nowcoder.com/practice/9b4c81a02cd34f76be2659fa0d54342a
function printMatrix(matrix) { let res = []; if (!matrix.length) return res; // 定义上下左右边界 let left = 0; let right = matrix[0].length - 1; let up = 0; let down = matrix.length - 1; while (left <= right && up <= down) { // 上边界从左到右加入到结果数组中 for (let i = left; i <= right; i++) { res.push(matrix[up][i]); } // 上边界下移 up++; if(up > down){ break; } // 右边界从上向下加入结果 for(let i = up; i <= down; i++){ res.push(matrix[i][right]); } // 右边界左移 right--; if(left > right){ break; } // 下边界从右向左加入 for(let i = right; i >= left; i--){ res.push(matrix[down][i]); } // 下边界上移 down--; if(up > down){ break; } // 左边界从下向上加入 for(let i = down; i >= up; i--){ res.push(matrix[i][left]); } left++; if(left > right){ break; } } return res; } module.exports = { printMatrix: printMatrix, };