
public static void main(String [] args) {int a=3;int[][] result = generateMatrix(a);for(int i = 0; i <3;i++) {for(int j = 0; j <3; j++) {System.out.print(result[i][j]+ "\t");}System.out.println();}}public static int[][] generateMatrix(int n){int rowMin = 0, rowMax = n - 1, colMin = 0, colMax = n - 1;int [][] list =new int[n][n];int a = 1,target=n*n;while (a<=target) {/*遍历第一行,行不动,列加1* 遍历结果1->2->3* 把第一行元素写入数组中*/for (int i = colMin; i <= colMax; i++)list[rowMin][i]=a++;rowMin++;/*遍历最后一列colMax,列不动,行加1* 遍历结果3->4->5* 把最后一列元素写入数组中*/for (int i = rowMin; i <= rowMax; i++)list[i][colMax]=a++;colMax--;/*遍历最后一行rowMax,行不动,列减1* 遍历结果5->6->7* 把最后一行元素写入数组中*/for (int i = colMax; i >= colMin; i--)list[rowMax][i]=a++;rowMax--;/*遍历第一列colMin,列不动,行减1* ......*/for (int i = rowMax; i >= rowMin; i--)list[i][colMin]=a++;colMin++;}return list;}
