行列は、行と列で編成されたセルのコレクションと考えることができます。各セルには、空または空でない値を含めることができます。コンピューター プログラミングでは、データを 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 サイトの他の関連記事を参照してください。

jbl耳机是很多听音乐用户的首选,好评如潮,但是对于假货大家还是非常的害怕的,那么jbl耳机怎么查询真伪来避免这个问题呢?下面就看看怎么查询吧。jbl耳机怎么查询真伪:1、首先进入“中国商品信息验证中心”。2、然后输入查询码,即可查看是否正确从而判断是不是真货。3、也可以去通过耳机声音的清晰度来进行分辨。正牌的耳机声音是非常的清晰的,音质也不会出现改变。假牌的耳机声音会有很多的掺杂,音质也是特别的差。4、大家可以将自己的耳机声音开到最大,看看是不是很和谐,真耳机声音都是一样的。但是假耳机的声音开

现在怎么买比特币的800字公众号文章随着比特币的价格飙升,越来越多的人开始关注比特币,也有越来越多的人想要投资比特币。但是,投资比特币也是有风险的,所以在投资之前,需要了解相关知识,并做好风险控制。那么现在怎么买比特币呢?首先,为了投资比特币,您需要准备一个比特币钱包。比特币钱包是一种软件,用于存储、发送和接收比特币资金。根据您的需求,有多种类型的比特币钱包可供选择,例如硬件钱包、软件钱包和网络钱包。每种钱包都有其独特的特点,您可以根据自己的需求选择适合自己的。其次,你需要选择一个可靠的比特币交

Steam是一个整合游戏下载平台,玩家可以在该平台上购买正版的游戏,也可以跟其他玩家进行沟通讨论交流。有小伙伴知道steam怎么查询账号id吗,下面小编就给大家详细介绍一下steam查询账号id的方法,有需要的小伙伴可以来看一看。查询方法:1、双击打开软件,点击上方菜单栏中的"查看"。2、然后点击下方选项列表中的"设置"。3、在打开的窗口界面中,点击左侧栏中的"账户"选项,然后找到右侧中的"账户名称"即可查询到账号id。

PHP如何查询Oracle数据库中的数据随着互联网时代的到来,网站和应用程序的开发越来越普遍。而数据库作为数据存储和管理的关键技术,也成为了开发者们必备的工具之一。其中,Oracle数据库作为一款功能强大、稳定可靠的关系型数据库管理系统,在企业级应用中得到了广泛应用。而在开发网站或应用程序时,如何使用PHP进行Oracle数据库的查询是一个非常重要的问题。在

PHP表单处理:表单数据查询与筛选引言在Web开发中,表单是一种重要的交互方式,用户可以通过表单向服务器提交数据并进行进一步的处理。本文将介绍如何使用PHP处理表单数据的查询与筛选功能。表单的设计与提交首先,我们需要设计一个包含查询与筛选功能的表单。常见的表单元素包括输入框、下拉列表、单选框、复选框等,根据具体需求进行设计。用户在提交表单时,会将数据以POS

在进行计算机编程时,有时需要求出源自特定节点的子树的最小权重,条件是该子树不能包含距离指定节点超过D个单位的节点。这个问题出现在各个领域和应用中,包括图论、基于树的算法和网络优化。子树是较大树结构的子集,指定的节点作为子树的根节点。子树包含根节点的所有后代及其连接边。节点的权重是指分配给该节点的特定值,可以表示其重要性、重要性或其他相关指标。在这个问题中,目标是找到子树中所有节点中的最小权重,同时将子树限制在距离根节点最多D个单位的节点。在下面的文章中,我们将深入研究从子树中挖掘最小权重的复杂性

MySQL中如何进行数据的时序存储和查询?在许多应用场景中,对于数据的时序性要求是非常常见的,比如传感器数据的监测、日志记录等。MySQL作为一种常用的关系型数据库,也提供了一些方法来进行时序数据的存储和查询。一种常见的方法是使用时间戳字段来存储数据的时间信息。在MySQL中,可以使用TIMESTAMP或DATETIME类型的字段来存储时间。TIMESTAM

MySQL是目前最流行的关系型数据库之一,但是在处理大量数据时,MySQL的性能可能会受到影响。其中,一种常见的性能瓶颈是查询中的LIKE操作。在MySQL中,LIKE操作是用来模糊匹配字符串的,它可以在查询数据表时用来查找包含指定字符或者模式的数据记录。但是,在大型数据表中,如果使用LIKE操作,它会对数据库的性能造成影响。为了解决这个问题,我们可


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
