四步:
1.从左到右
2.从上到下
3.从右到左
4.从下到上
代码如下
public int[] spiralOrder(int[][] matrix) {
if(matrix.length==0) return new int[0];
int n = 0,l = 0,t= 0;
int x = matrix[0].length-1;
int y = matrix.length-1;
int[] res = new int[(x+1)*(y+1)];
while(true) {
for(int i=l;i<=x;i++) {
res[n++] = matrix[t][i];
}
t++;
if(t>y) break;
for(int i=t;i<=y;i++) {
res[n++] = matrix[i][x];
}
x--;
if(x<l) break;
for(int i=x;i>=l;i--) {
res[n++] = matrix[y][i];
}
y--;
if(y<t) break;
for(int i=y;i>=t;i--) {
res[n++] = matrix[i][l];
}
l++;
if(l>x)break;
}
return res;
}

本文介绍了一种矩阵螺旋遍历的算法实现,通过四个步骤(从左到右、从上到下、从右到左、从下到上)循环进行,直至遍历完整个矩阵。代码使用Java编写,详细展示了如何通过控制边界来实现螺旋遍历。
8702

被折叠的 条评论
为什么被折叠?



