Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n =3,
[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ]
class Solution {
public:
vector<vector<int> > generateMatrix(int n)
{
vector<vector<int> > ret(n,vector<int>(n,0));//二维容器的初始化
int start=0;
int end=n-1;
int sum=1;
while(start<end)
{
for(int j=start;j<end;j++)
{
ret[start][j]=sum;
sum++;
}
for(int i=start;i<end;i++)
{
ret[i][end]=sum;
sum++;
}
for(int j=end;j>start;j--)
{
ret[end][j]=sum;
sum++;
}
for(int i=end;i>start;i--)
{
ret[i][start]=sum;
sum++;
}
start++;
end--;
}
if(start==end)
ret[start][end]=sum;
return ret;
}
};