オファーが届きました。友達を掘って受け取りましょう!私は2022年の春の採用チェックインイベントに参加しています。クリックしてイベントの詳細を表示します。
1.問題の説明
正の整数が与えられた場合 、 時計回りに配置されたスパイラルの すべての 要素を含む 正方行列 をn
生成し ます。1
n2
n x n
matrix
トピックリンク:スパイラルマトリックスII。
第二に、主題の要件
例1
输入: n = 3
输出: [[1,2,3],[8,9,4],[7,6,5]]
复制代码
例2
输入: n = 1
输出: [[1]]
复制代码
訪問
1.模拟计算
2.建议用时15~35min
复制代码
3.問題分析
この質問は、基本的にアルゴリズムの質問の毎日の練習と同じです--- 64日目:スパイラルマトリックスI。
これは、配列を提供し、出力できる最初の質問です。2番目の質問では、範囲を示し、配列を出力できます。最初に螺旋矩阵 I
質問。
第四に、エンコーディングの実装
class Solution {
public:
vector<vector<int>> generateMatrix(int n) {
int k=1,i,u=0,d=n-1,l=0,r=n-1;//初始化数据,定义上下左右四个方向范围
vector<vector<int>>v(n, vector<int>(n));//定义二维数组
while(1)//循环判断
{
for(i=l;i<=r;i++) v[u][i]=k++;//l->r方向
if(++u>d) break;
for(i=u;i<=d;i++) v[i][r]=k++;//u->d方向
if(--r<l) break;
for(i=r;i>=l;i--) v[d][i]=k++;//r->方向
if(--d<u) break;
for(i=d;i>=u;i--) v[i][l]=k++;//d->u方向
if(++l>r) break;
}
return v;
}
};
复制代码