题目要求:
分析:
设置一个二维数组,将这些数字一个一个放进去就好了。
要注意的是边界情况,每次放进去之后,二维数组的边界都会相应地发生变化。关于这些变化,动手在纸上画一画就很清楚了。
具体代码如下:
class Solution {
public int[][] generateMatrix(int n) {
int [][]result = new int[n][n];
int left = 0, right = n - 1, top = 0, bottom = n - 1;
int num = 1;
int quit = n * n;
while(num <= quit) {
for(int i = left; i <= right; i ++) {
result[top][i] = (num ++);
}
top ++;
for(int i = top; i <= bottom; i ++) {
result[i][right] = (num ++);
}
right --;
for(int i = right; i >= left; i --) {
result[bottom][i] = (num ++);
}
bottom --;
for(int i = bottom; i >= top; i --) {
result[i][left] = (num ++);
}
left ++;
}
return result;
}
}