解题思路:
(1)他是矩阵,先创建二维数组new int[n][n];
(2)数字是从左到右,从上到下,从右到左,从下到上的顺序(顺时针)
(3)从左到右的时候,二维数组的第一个n不变,第二个n变
(4)从上到下的时候,二维数组的第一个n变, 第二个n不变
(5)从右到左的时候,二维数组的第一个n不变,第二个n变
(6)从下到上的时候,二维数组的第一个n变, 第二个n不变
class Solution {
public int[][] generateMatrix(int n) {
int l = 0, r = n - 1, t = 0, b = n - 1;
int[][] mat = new int[n][n];
int num = 1, tar = n * n;
while(num <= tar){
for(int i = l; i <= r; i++) mat[t][i] = num++; // left to right.
t++;
for(int i = t; i <= b; i++) mat[i][r] = num++; // top to bottom.
r--;
for(int i = r; i >= l; i--) mat[b][i] = num++; // right to left.
b--;
for(int i = b; i >= t; i--) mat[i][l] = num++; // bottom to top.
l++;
}
return mat;
}
}