题目描述
剑指 Offer 29. 顺时针打印矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/70a873398d4d49c89f3e7b1432b6c1cc.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS2F0cmluYXNheWhlbGxvXw==,size_14,color_FFFFFF,t_70,g_se,x_16)
解题思路
- 设置边界
- 指针遍历
代码实现
var spiralOrder = function(matrix) {
let res = [];
if (matrix.length === 0 || matrix[0] === 0) return res;
let [l, t, r, b] = [0, 0, matrix[0].length-1, matrix.length-1];
while (true) {
for (let i=l; i<=r; i++) {
res.push(matrix[t][i]);
};
t++;
if (t>b) break;
for (let j=t; j<=b; j++) {
res.push(matrix[j][r]);
};
r--;
if (r<l) break;
for (let i=r; i>=l; i--) {
res.push(matrix[b][i]);
};
b--;
if (b<t) break;
for (let i=b; i>=t; i--) {
res.push(matrix[i][l]);
};
l++;
if (l>r) break;
};
return res;
};
![在这里插入图片描述](https://img-blog.csdnimg.cn/416d49c31701459bbca4d13464224f93.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS2F0cmluYXNheWhlbGxvXw==,size_14,color_FFFFFF,t_70,g_se,x_16)