题目描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
总结
太想取巧,结果反而弄的很复杂
先实现再优化,再说一遍
Sample&Demo Code
class Solution {
public int[][] generateMatrix(int n) {
int[][] arr = new int[n][n];
int c = 1, j = 0;
while(c <= n*n) {
for(int i = j ; i < n-j; i++) arr[j][i] = c++;
for(int i = j+1 ; i < n-j; i++) arr[i][n-j-1] = c++;
for(int i = n-j-2; i > j ; i--) arr[n-j-1][i] = c++;
for(int i = n-j-1; i > j ; i--) arr[i][j] = c++;
j++;
}
return arr;
}
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/spiral-matrix-ii