// 螺旋矩阵
// 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
// 输出:[1,2,3,6,9,8,7,4,5]
public static List<Integer> spiralOrder(int[][] matrix){
if(matrix.length==0)return new ArrayList<Integer>();
int l=0,r=matrix[0].length-1,
t=0,b=matrix.length-1,x=0;
Integer[] res = new Integer[(r + 1) * (b + 1)];
while (true){
for (int i=l; i<=r; i++)res[x++]=matrix[t][i];
if(++t>b)break;
for(int i=t; i<=b; i++)res[x++]=matrix[i][r];
if(l>--r)break;
for(int i=r;i>=l;i--)res[x++]=matrix[b][i];
if(t>--b)break;
for(int i=b;i>=t;i--)res[x++]=matrix[i][l];
if(++l>r)break;
}
return Arrays.asList(res);
}
螺旋矩阵找规律
最新推荐文章于 2025-02-11 09:04:10 发布