标题:59螺旋矩阵II-中等
题目
给你一个正整数
n
,生成一个包含1
到n2
所有元素,且元素按顺时针顺序螺旋排列的n x n
正方形矩阵matrix
。
示例1
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]
示例2
输入:n = 1
输出:[[1]]
提示
1 <= n <= 20
代码Java
public int[][] generateMatrix(int n) {
int[][] ans = new int[n][n];
int x = 1;
int top = 0;
int right = n - 1;
int under = n - 1;
int left = 0;
for (int i = 0; i < n / 2; i++) {
// 上
for (int j = left; j < right; j++) {
ans[top][j] = x++;
}
// 右
for (int j = top; j < under; j++) {
ans[j][right] = x++;
}
// 下
for (int j = right; j > left; j--) {
ans[under][j] = x++;
}
// 左
for (int j = under; j > top; j--) {
ans[j][left] = x++;
}
top++;
right--;
under--;
left++;
}
if (n % 2 == 0)
return ans;
else {
ans[n / 2][n / 2] = x;
return ans;
}
}