Leecode brush title
- Title Description
Given a positive integer n, to generate a 1 n2 contains all of the elements, and the element arranged spirally clockwise order square matrix.
- Examples
Input: 3
Output:
[
[1, 2, 3],
[8,9, 4],
[7, 6, 5]
]
- Code
class Solution {
public:
vector<vector<int>> generateMatrix(int n)
{
vector<vector<int> > matrix(n, vector<int>(n));
int k = 1;//从1开始
int br = 0;
int er = n-1;//行
int bc = 0;
int ec = n-1;//列
while(1)
{
for(int i = bc;i <= ec;i++)
matrix[br][i] = k++;
if(++br > er)
break;
for(int i = br;i <= er;i++)
matrix[i][ec] = k++;
if(--ec < bc)
break;
for(int i = ec;i >= bc;i--)
matrix[er][i] = k++;
if(--er < br)
break;
for(int i = er;i >=br;i--)
matrix[i][bc] = k++;
if(++bc > ec)
break;
}
return matrix;
}
};