[Lc]59螺旋矩阵II
Contents
题目
题解
就是分四种情况,从左到右,上到下,右到左,下到上循环遍历,和54题类似
- 时间复杂度$O(nm)$
- 空间复杂度$O(nm)$
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> res(n,vector<int>(n));//初始化输出的矩阵
int u=0, d=n-1, l=0, r=n-1;//设定边界值
int num=1;//设定第一个数
while(num<=n*n){//设定总共迭代的次数,即边界条件
for(int i=l;i<=r;i++) res[u][i]=num++;//从左到右
u++;
for(int i=u;i<=d;i++) res[i][r]=num++;//从上到小
r--;
for(int i=r;i>=l;i--) res[d][i]=num++;//从右到左
d--;
for(int i=d;i>=u;i--) res[i][l]=num++;//从下到上
l++;
}
return res;
}
};
Author ChrisHRZ
LastMod 2020-05-17