圖片.png

    1. public static void main(String [] args) {
    2. int a=3;
    3. int[][] result = generateMatrix(a);
    4. for(int i = 0; i <3;i++) {
    5. for(int j = 0; j <3; j++) {
    6. System.out.print(result[i][j]+ "\t");
    7. }
    8. System.out.println();
    9. }
    10. }
    11. public static int[][] generateMatrix(int n){
    12. int rowMin = 0, rowMax = n - 1, colMin = 0, colMax = n - 1;
    13. int [][] list =new int[n][n];
    14. int a = 1,target=n*n;
    15. while (a<=target) {
    16. /*遍历第一行,行不动,列加1
    17. * 遍历结果1->2->3
    18. * 把第一行元素写入数组中
    19. */
    20. for (int i = colMin; i <= colMax; i++)
    21. list[rowMin][i]=a++;
    22. rowMin++;
    23. /*遍历最后一列colMax,列不动,行加1
    24. * 遍历结果3->4->5
    25. * 把最后一列元素写入数组中
    26. */
    27. for (int i = rowMin; i <= rowMax; i++)
    28. list[i][colMax]=a++;
    29. colMax--;
    30. /*遍历最后一行rowMax,行不动,列减1
    31. * 遍历结果5->6->7
    32. * 把最后一行元素写入数组中
    33. */
    34. for (int i = colMax; i >= colMin; i--)
    35. list[rowMax][i]=a++;
    36. rowMax--;
    37. /*遍历第一列colMin,列不动,行减1
    38. * ......
    39. */
    40. for (int i = rowMax; i >= rowMin; i--)
    41. list[i][colMin]=a++;
    42. colMin++;
    43. }
    44. return list;
    45. }