行列は、行と列で編成されたセルのコレクションと考えることができます。各セルには、空または空でない値を含めることができます。コンピューター プログラミングでは、データを 2 次元グリッドで表すために行列がよく使用されます。
この記事では、行列の更新の可能性を考慮して、行列内の接続された空でないセルの数を効率的にカウントする方法について説明します。この問題を解決するさまざまな方法を検討し、実装を示す実際のコード例を提供します。
###文法###ここで、matrix は入力「matrix」、「rows」と「cols」はそれぞれ行列の行数と列数を表します。関数「queryCount」は、行列内の接続された空でないセルの数を表す整数値を返します。
###アルゴリズム###この問題を解決するには、次のアルゴリズムに従うことができます -
ステップ 1- 変数「count」を 0 に初期化します。これにより、接続された空でないセルの数が保存されます。
ステップ 2 - 行列内の各セルを繰り返します。
ステップ 3 - 各セルについて、空ではないか (つまり、null 以外の値が含まれているか) どうかを確認します。
ステップ 4 - セルが空でない場合は、[カウント]を 1 つ増やします。
ステップ 5 - セルに空ではない隣接セルがあるかどうかを確認します。
ステップ 6 - 隣接するセルが空でない場合は、カウントを 1 増やします。
ステップ 7 - 隣接するすべてのセルに対してステップ 5 ~ 6 を繰り返します。
ステップ 8 - 8: 行列内のすべてのセルを反復処理した後、最終結果として「count」を返します。
###方法###方法 1
方法 2 - 更新された行列内の結合を持つ空でないセルの数を見つけるクエリを実装する別の方法は、幅優先検索 (BFS) アルゴリズムを使用することです。 。
方法1 このアプローチでは、DFS アルゴリズムは行列を再帰的に走査し、訪問したセルを追跡して二重カウントを回避します。
方法 2
例 2
この記事では、C/C を使用して行列内の接続された空でないセルの数を見つけて更新する 2 つの方法について説明しました。深さ優先検索 (DFS) アルゴリズムと和集合検索 (素集合の和集合)。特定の使用例に最も適切な方法を選択する前に、各方法の時間計算量と空間計算量を分析することが重要です。
以上が行列内の接続された空でないセルの数を更新するクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。