class Solution {
public int[][] generateMatrix(int n) {
int val = 01;
int [][] res = new int[n][n];
for(int cycle = 0; cycle <= n-2; cycle ++){
for(int i = cycle; i < n - cycle - 1; i++){
res[cycle][i] = val ++;
}
for(int i = cycle; i < n - cycle -1; i++){
res[i][n - cycle -1] = val ++;
}
for(int i = n -1 - cycle; i > cycle ; i--){
res[ n -1 - cycle][i] = val++;
}
for(int i = n - cycle -1 ; i > cycle; i--){
res[i][cycle] = val ++;
}
}
if(n%2 == 1){
res[n/2][n/2] = val;
}
return res;
}
}
要实现螺旋矩阵,可以使用双重循环,逐个填充每个位置。在每次迭代中,应该按照从左到右、从上到下、从右到左、从下到上的顺序填充数字。