题解 | #顺时针打印矩阵#
顺时针打印矩阵
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,
};

查看1道真题和解析