给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
class Solution {
public int[][] generateMatrix(int n) {
int[][] result = new int[n][n];
int len = (n / 2) + (n % 2);
int value = 0;
for (int i = 0; i < len; ++i) {
int c = i, l = i;
int endc = n - i - 1, endl = n - i - 1;
if (c == endc && l == endl) {
result[c][l] = ++value;
return result;
}
while (l != endl) {
result[c][l++] = ++value;
}
while (c != endc) {
result[c++][l] = ++value;
}
while (l != i) {
result[c][l--] = ++value;
}
while (c != i) {
result[c--][l] = ++value;
}
}
return result;
}
}