class Solution {
public int[][] generateMatrix(int n) {
int[][] res = new int[n][n];
int startx = 0;
int starty = 0;
int mid = n / 2;
int loop = n / 2;
int count = 1;
int off = 1;
int i, j;
while (loop > 0) {
i = startx;
j = starty;
for (; j < starty + n - off; j++) {
res[startx][j] = count++;
}
for (; i < startx + n - off; i++) {
res[i][j] = count++ ;
}
for (; j > starty; j--) {
res[i][j] = count++;
}
for (; i > startx; i--) {
res[i][j] = count++;
}
loop --;
startx ++;
starty ++;
off += 2;
}
if (n % 2 == 1) {
res [mid][mid] = count;
}
return res;
}
}