四步:
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;
}