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