剑指 Offer 29. 顺时针打印矩阵
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
示例 1:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[1,2,3,6,9,8,7,4,5]
解法:模拟边界法
算法流程:
- 空值处理: 当 matrix 为空时,直接返回空列表 [] 即可。
- 初始化: 矩阵 上下左右 四个边界 top、bom、lef、rig ,用于打印的结果列表 arr 。
- 循环打印: “从左向右、从上向下、从右向左、从下向上”
- 根据边界打印,即将元素按顺序添加至数组arr 尾部;
- 边界向内收缩 1 (代表已被打印);
- 判断是否打印完毕(边界是否相遇),若打印完毕则跳出。因为可能不是方阵
- 返回值: 返回 res 即可。
var spiralOrder = function(matrix) {
let arr = []
if(!matrix