JavaScript プログラム: バイナリ行列内の 1 と 0 のセットの数を数える

WBOY
リリース: 2023-08-24 17:01:05
転載
813 人が閲覧しました

JavaScript プログラム: バイナリ行列内の 1 と 0 のセットの数を数える

バイナリ行列は、その名前が示すように、1 と 0 の 2 つの数値のみで構成される行列です。この記事では、概念をより深く理解するために、コードと適切な説明を見ていきます。このチュートリアルでは、指定されたバイナリ行列内の 1 と 0 のセットを数える JavaScript プログラムを作成します。

問題の紹介

この問題では、バイナリ行列が与えられ、同じ値を含む行または列のセットを見つける必要があります。行または列の同一の要素が含まれている場合、セットは単一の値または任意のサイズにすることができます。例えば、###

次のような 2 行 3 列のバイナリ行列があります -

リーリー

1 と 0 のセットの数は次のように計算できます。

  • サイズ 1 のセット

    - 行列のすべてのセルはそれ自体が個別のセットであり、合計 6 つのセルがあります。

  • サイズ 2 のセット

    - 2 行目の最初の 2 列は同じ値を持ち、2 番目と 3 番目の列も同じ値を持ちます。サイズ 2 のセットが 2 つあり、同一の値のコレクション。最初の行にはさらに 2 つの 1 があり、セットと見なすことができます

  • サイズ 3 のコレクション

    - マトリックス内の可能な最大コレクション サイズは、行と列の最大サイズであり、ここでは 3 です。ただし、サイズに関しては同じ値が入ったセットはございません。

  • サイズ 1、2、3 にはそれぞれ 6、3、0 セットが用意されています。したがって、最終的に答えは 9 になります。
###方法###

前のセクションでは、その中の類似した要素の数を取得するには、特定の行または列のみに焦点を当てる必要があることを見てきました。また、数学的概念を使用して、異なるサイズのセットの数を数えます特定の行または列に存在します。

たとえば、連続する x 1 の合計数がある場合、1 から x までの異なるサイズの 1 のセットの合計数は順列から得られます。

このアプローチに移りましょう -

まず、0 と 1 を含む配列、または指定されたバイナリ行列を取得します。

  • パラメータとして渡された行列に対して必要な答えを自動的に計算し、その答えを戻り値として返す関数を作成します。

  • この関数では、配列またはバイナリ行列を 2 回反復します (1 回目は行ごと、2 回目は列ごと)。

  • for ループでは、2 つの変数を維持します。1 つは 1 の数を格納するため、もう 1 つは 0 の数を格納するためです。

  • 単一の行または列を繰り返し処理した後、上記の式を使用して答えを更新し、その答えを変数に保存します。

  • 最後に、行*列を 2 回追加したので、行*列を削除して答えを返します。

  • 行 * 列を削除しました。これは、行を反復するときにセットに 2 つのゼロと 1 の単一値が追加され、列を反復するときに再度追加されるためです。

  • Example
の中国語訳は次のとおりです:

Example

概念をよりよく理解するために、上記の手順の実装を見てみましょう -

リーリー

時間と空間の複雑さ

上記のコードの時間計算量は O(N*N) です。ここで、N は指定された行列の行数と列数の最大値です。

余分なスペースは使用されないため、コードのスペース複雑さは O(1) です。

###結論は###

このチュートリアルでは、指定されたバイナリ行列内の 1 と 0 のセットの数を数える JavaScript プログラムの作成方法を学びました。バイナリ行列は、その名前が示すように、1 と 0 の 2 つの数値のみを含む行列です。問題のコードの時間計算量は O(N*N)、空間計算量は O(1) です。

以上がJavaScript プログラム: バイナリ行列内の 1 と 0 のセットの数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!