这个为什么是简单题?
思路:设定四个边界,上下左右;
循环操作四个子步骤:向右遍历、向下遍历、向左遍历、向上遍历
class Solution {
public int[] spiralOrder(int[][] matrix) {
if(matrix.length==0) return new int[0];
int m=matrix.length;
int n=matrix[0].length;
int l=0,r=n-1,u=0,d=m-1;
int num=0;
List<Integer> res=new LinkedList<>();
int[] ans=new int[m*n];
while(num<m*n)
{
for(int j=l;j<=r;j++)
{
res.add(matrix[u][j]);
num++;
}
u++;
for(int i=u;i<=d;i++)
{
res.add(matrix[i][r]);
num++;
}
r--;
for(int j=r;j>=l;j--)
{
res.add(matrix[d][j]);
num++;
}
d--;
for(int i=d;i>=u;i--)
{
res.add(matrix[i][l]);
num++;
}
l++;
}
for(int i=0;i<m*n;i++)
{
ans[i]=res.get(i);
}
return ans;
}
}