题目描述
思路分析
模拟
先填矩阵后加
v
e
c
t
o
r
vector
vector
代码实现
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int res[25][25];
vector<vector<int>> ed;
int cur=2;
bool vis[25][25];
memset(vis,false,sizeof vis);
int i=0,j=0;
res[i][j]=1;
vis[i][j]=true;
while(cur<=n*n){
while(j+1<n&&!vis[i][j+1]) res[i][++j]=cur++,vis[i][j]=true;
while(i+1<n&&!vis[i+1][j]) res[++i][j]=cur++,vis[i][j]=true;
while(i-1>=0&&!vis[i-1][j]) res[--i][j]=cur++,vis[i][j]=true;
while(j-1>=0&&!vis[i][j-1]) res[i][--j]=cur++,vis[i][j]=true;
}
for(int i=0;i<n;i++){
vector<int> cur;
for(int j=0;j<n;j++){
cur.push_back(res[i][j]);
}
ed.push_back(cur);
}
return ed;
}
};