class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> matrix(n, vector<int>(n, 0));
int startx = 0, starty = 0;
int loop = n / 2;//大外圈循环的次数
int mid = n / 2;
int count = 1;
int offset = 1;
int i, j;
while (loop--){
i = startx;
j = starty;
for (j = starty; j < n - offset; j++){
matrix[startx][j] = count;
count++;
}
for (i = startx; i < n - offset; i++){
matrix[i][j] = count;
count++;
}
for (; j > starty; j--){
matrix[i][j] = count;
count++;
}
for (; i > startx; i--){
matrix[i][j] = count;
count++;
}
offset++;
startx++;
starty++;
}
if ((n & 1) == 1){
matrix[mid][mid] = count;
}
return matrix;
}
};