这题,和"螺旋矩阵 | "差不多,就按着那个思路继续写了。
个人代码:
import java.util.Arrays;
public class SpiralMatrix_2 {
public static void main(String args[]) {
System.out.println(Arrays.deepToString(order(3)));
}
static int[][] order(int a){
int q[][] = new int[a][a];
if(a==0)return q;
int round = (a+1)/2;
int i = 0,num=1;
while(i<round) {
for(int j=i;j<(a-i);j++) {
q[i][j]=num;
num++;
}
for(int j=i+1;j<a-i;j++) {
q[j][a-1-i]=num;
num++;
}
for(int j=a-2-i;j>=i;j--) {
q[a-1-i][j]=num;
num++;
}
for(int j=a-2-i;j>=i+1;j--) {
q[j][i]=num;
num++;
}
i++;
}
return q;
}
}
测试结果:
[[1, 2, 3], [8, 9, 4], [7, 6, 5]]

本文介绍了如何优化生成螺旋矩阵的Java代码,通过递归实现,展示了一个更简洁且高效的解决方案,适用于任意大小的矩阵。

被折叠的 条评论
为什么被折叠?



