Leecode刷题
- 题目描述
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。
- 示例
输入: 3
输出:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
- 代码
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)
brea