public class SpiralMatrix2
{
public SpiralMatrix2(){}
public int[][] generateMatrix(int n)
{
int[][] result= new int[n][n];
int num=1;
if(n == 0)
{return result;}
for(int i=0;i<n/2;i++)
{
int start= i;int end= n-i;
for(int j=start;j<end;j++)
{
result[start][j]= num;num++;
}
for(int j=start+1;j<end;j++)
{
result[j][end-1]= num;num++;
}
for(int j=end-2;j>start;j--)
{
result[end-1][j]= num;num++;
}
for(int j=end-1;j>start;j--)
{
result[j][start]=num;num++;
}
}
if(num == n*n)
{
result[n/2][n/2]= num;
}
//如果矩阵为奇数阶,则for循环结束后num值为n*n,矩阵中心元素未被赋值,
//如果是偶数阶,则循环结束为n*n+1
return result;
}
}