给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
按圈顺序打印
class Solution {
public int[][] generateMatrix(int n) {
int[][] nums=new int[n][n];
int c=1;
int j=0;//圈数
while(c<=n*n){
//左到右
for(int i=j;i<n-j;i++){
nums[j][i]=c++;
}
//上到下
for(int i=j+1;i<n-j;i++){
nums[i][n-j-1]=c++;
}
//右到左
for(int i=n-j-2;i>=j;i--){
nums[n-j-1][i]=c++;
}
//下到上
for(int i=n-j-2;i>j;i--){
nums[i][j]=c++;
}
j++;
}
return nums;
}
}