题目描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
示例:
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
代码
public class Solution {
public int[][] GenerateMatrix(int n) {
int[][] matrix = new int[n][];
for (int i = 0; i < n; i++)
matrix[i] = new int[n];
int left=0;
int right=n-1;
int top=0;
int bottom=n-1;
int count =0;
while(count<n*n)
{
for(int a=left;a<=right;a++)
{
matrix[top][a]=count+1;
count++;
}
top++;
if(count<n*n)
{
for(int b=top;b<=bottom;b++)
{
matrix[b][right]=count+1;
count++;
}
right--;
}
if(count<n*n)
{
for(int i=right;i>=left;i--)
{
matrix[bottom][i]=count+1;
count++;
}
bottom--;
}
if(count<n*n)
{
for(int j=bottom;j>=top;j--)
{
matrix[j][left]=count+1;
count++;
}
left++;
}
}
return matrix;
}
}