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

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Blizzard Battle.net のアップデートが 45% で止まってしまいます。解決するにはどうすればよいですか?最近、ソフトウェア更新時にプログレスバーが 45% で止まってしまうことが多く、何度再起動しても進まないことがありますが、この状況を解決するにはどうすればよいでしょうか? クライアントの再インストール、リージョンの切り替え、ファイルの削除などが考えられます。このソフトウェアチュートリアルでは、より多くの人に役立つことを願って、操作手順を共有します。 Blizzard Battle.net のアップデートが 45% で止まってしまいます、どうすれば解決しますか? 1. クライアント 1. まず、クライアントが公式 Web サイトからダウンロードされた正式バージョンであることを確認する必要があります。 2. そうでない場合、ユーザーはアジアのサーバー Web サイトにアクセスしてダウンロードできます。 3. 入力後、右上隅の「ダウンロード」をクリックします。注: インストール時に簡体字中国語を選択しないようにしてください。

12306 チケット予約アプリの最新バージョンをダウンロードします。誰もが非常に満足している旅行チケット購入ソフトウェアです。行きたい場所に行くのに非常に便利です。ソフトウェアには多くのチケット ソースが提供されています。本物のチケットを渡すだけで済みます。 - 氏名認証によるオンラインチケット購入 全ユーザー 旅行券や航空券を簡単に購入でき、さまざまな割引が受けられます。また、チケットを入手するための事前予約も開始できます。ホテルや特別な車の送迎も予約できます。これを使用すると、ワンクリックで行きたい場所に行き、チケットを購入できます。旅行がより簡単で便利になり、すべての人に旅行体験を提供します編集者はオンラインで詳細を説明するようになり、12306 人のユーザーに過去のチケット購入記録を表示する方法が提供されます。 1. Railway 12306 を開き、右下隅の [My] をクリックして、[My Order] をクリックします。 2. 注文ページで [Paid] をクリックします。 3. 有料ページにて

Angular.js は、動的アプリケーションを作成するための無料でアクセスできる JavaScript プラットフォームです。 HTML の構文をテンプレート言語として拡張することで、アプリケーションのさまざまな側面を迅速かつ明確に表現できます。 Angular.js は、コードの作成、更新、テストに役立つさまざまなツールを提供します。さらに、ルーティングやフォーム管理などの多くの機能も提供します。このガイドでは、Ubuntu24 に Angular をインストールする方法について説明します。まず、Node.js をインストールする必要があります。 Node.js は、ChromeV8 エンジンに基づく JavaScript 実行環境で、サーバー側で JavaScript コードを実行できます。ウブにいるために

Xuexin.com で私の学歴を確認するにはどうすればよいですか? Xuexin.com で学歴を確認できますが、多くのユーザーは Xuexin.com で学歴を確認する方法を知りません。次に、エディターが Xuexin.com で学歴を確認する方法に関するグラフィック チュートリアルを提供します。興味のあるユーザーはぜひ見に来てください! Xuexin.com の使用方法チュートリアル: Xuexin.com で学歴を確認する方法 1. Xuexin.com の入り口: https://www.chsi.com.cn/ 2. Web サイトのクエリ: ステップ 1: Xuexin.com のアドレスをクリックします。上記をクリックしてホームページに入ります [教育クエリ]をクリックします; ステップ2: 最新のWebページで下図の矢印に示すように[クエリ]をクリックします; ステップ3: 新しいページで[学術単位ファイルにログイン]をクリックします; ステップ4: ログインページで情報を入力し、[ログイン]をクリックします。

Edge ブラウザを使用して Web ページにアクセスすると、接続が専用接続ではないというプロンプトが表示され、Web ブラウジングが失敗したことがありますか?これはどうなっているでしょうか?多くの友人はこの問題への対処方法を知りません。次の 3 つの解決策を参照してください。方法 1 (単純かつ粗雑): エッジ ブラウザでは、設定を入力してセキュリティ機能をオフにし、Web サイトのアクセス許可で位置情報の許可をブロックすることで、Web サイトにアクセスできない問題を解決できます。このアプローチの有効性と期間はさまざまであり、具体的な効果を判断することはできないことに注意することが重要です。ブラウザを再起動した後、Web サイトにアクセスして問題が解決したかどうかを確認してください。方法 2: キーボードを英語入力に調整する

友人のコンピュータにはこのような障害があり、「この PC」と C ドライブのファイルを開くと、「Explorer.EXE Windows は指定されたデバイス、パス、またはファイルにアクセスできません。プロジェクトにアクセスするための適切な権限がない可能性があります。」と表示されます。フォルダ、ファイル、このコンピュータ、ごみ箱などを含め、ダブルクリックするとこのようなウィンドウが表示されますが、通常は右クリックで開きます。システムのアップデートが原因でこの状況が発生した場合は、以下のエディターで解決方法を説明します。 1. レジストリ エディターを開いて Win+R と入力し、「regedit」と入力するか、スタート メニューを右クリックして実行し、「regedit」と入力します。 2. レジストリ「Computer\HKEY_CLASSES_ROOT\PackagedCom\ClassInd」を見つけます。

1. イヤホンをイヤホンボックスに入れて蓋を開けたままにし、ボックスのボタンを長押ししてイヤホンのペアリング状態にします。 2. 時計の音楽機能をオンにして Bluetooth ヘッドフォンを選択するか、時計の設定機能で Bluetooth ヘッドフォンを選択します。 3. 正常にペアリングするウォッチのヘッドセットを選択します。

MSI グラフィックス カードは、市場で主流のグラフィックス カード ブランドです。パフォーマンスを実現し、互換性を確保するには、グラフィックス カードにドライバーをインストールする必要があることがわかっています。では、MSI グラフィックス カード ドライバーを最新バージョンに更新するにはどうすればよいでしょうか?通常、MSI グラフィック カード ドライバーは公式 Web サイトからダウンロードしてインストールできます。グラフィックカードドライバーの更新方法: 1. まず、「MSI公式Webサイト」に入ります。 2. 入力後、右上隅の「検索」ボタンをクリックし、グラフィックス カードのモデルを入力します。 3. 次に、対応するグラフィックス カードを見つけて、詳細ページをクリックします。 4. 次に、上の「テクニカル サポート」オプションを入力します。 5.最後に「ドライバーとダウンロード」に進みます。
