class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
vector<vector<int>> ans(n,vector<int>(n));
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
int a=0,b=-1,cur=0;
for(int i=1;i<=n*n;i++)
{
int x=a+dx[cur],y=b+dy[cur];
if(x>=0 && x<n && y>=0 && y<n && !ans[x][y])
{
ans[x][y]=i;
}
else{
cur=(cur+1)%4;
x=a+dx[cur],y=b+dy[cur];
ans[x][y]=i;
}
a=x,b=y;
}
return ans;
}
};
59. 螺旋矩阵 II (模拟)
最新推荐文章于 2025-01-05 16:16:46 发布
本文介绍了一种使用C++实现的方法来生成n×n的螺旋矩阵。通过定义方向向量和初始位置,逐步填充矩阵中的元素,确保按螺旋顺序递增。此算法适用于计算机科学中的数据结构与算法设计。
249

被折叠的 条评论
为什么被折叠?



