class Solution {
// 不额外使用数组,空间复杂度O(1)。
public int[] spiralOrder(int[][] matrix) {
if(matrix.length==0){
return new int[0];
}
int count=0;
int[] res=new int[matrix.length*matrix[0].length];
int l=0,r=matrix[0].length-1,t=0,b=matrix.length-1;
while(true){
for(int i=l;i<=r;i++){
res[count++]=matrix[t][i];
}
t++;
if(t>b){
break;
}
for(int i=t;i<=b;i++){
res[count++]=matrix[i][r];
}
r--;
if(r<l){
break;
}
for(int i=r;i>=l;i--){
res[count++]=matrix[b][i];
}
b--;
if(b<t){
break;
}
for(int i=b;i>=t;i--){
res[count++]=matrix[i][l];
}
l++;
if(l>r){
break;
}
}
return res;
}
}