描述
给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。
题解:将整个过程分成四个部分,向左,向下,向右,向上处理。
public class Solution {
public ArrayList<Integer> spiralOrder(int[][] matrix) {
ArrayList<Integer> list=new ArrayList<>();
if(matrix.length==0)
{
return list;
}
int row=matrix.length;
int col=matrix[0].length;
int j=0;
while(j<=col-1&&j<=row-1)
{
for(int i=j;i<col;i++)
{
list.add(matrix[j][i]);
}
for(int i=j+1;i<row;i++)
{
list.add(matrix[i][col-1]);
}
for(int i=col-2;i>j&&(row-j)!=1;i--)
{
list.add(matrix[row-1][i]);
}
for(int i=row-1;i>=j+1&&(col-j)!=1;i--)
{
list.add(matrix[i][j]);
}
j++;
col--;
row--;
}
return list;
}
}