class Solution { public int[][] generateMatrix(int n) { // 二维数组规格 int[][] resultArr = new int[n][n]; // 定义四个边界 int up = 0; // 上边界 int bottom = n-1; // 下边界 int left = 0; // 左边界 int right = n-1; // 右边界 //循环遍历 int number = 1; while(true){ // 从左到右 for(int col = left;col <= right;col ++){ resultArr[up][col] = number; number += 1; } if(++up > bottom){ break; } // 从上到下 for(int row = up;row <= bottom;row ++){ resultArr[row][right] = number; number += 1; } if(--right < left){ break; } // 从右到左 for(int col = right;col >= left;col --){ resultArr[bottom][col] = number; number += 1; } if(--bottom < up){ break; } // 从下到上 for(int row = bottom;row >= up;row --){ resultArr[row][left] = number; number += 1; } if(++left > right){ break; } } return resultArr; } }