バイナリ行列は、その名前が示すように、1 と 0 の 2 つの数値のみで構成される行列です。この記事では、概念をより深く理解するために、コードと適切な説明を見ていきます。このチュートリアルでは、指定されたバイナリ行列内の 1 と 0 のセットを数える JavaScript プログラムを作成します。
この問題では、バイナリ行列が与えられ、同じ値を含む行または列のセットを見つける必要があります。行または列の同一の要素が含まれている場合、セットは単一の値または任意のサイズにすることができます。例えば、###
次のような 2 行 3 列のバイナリ行列があります -リーリー
1 と 0 のセットの数は次のように計算できます。
- 行列のすべてのセルはそれ自体が個別のセットであり、合計 6 つのセルがあります。
- 2 行目の最初の 2 列は同じ値を持ち、2 番目と 3 番目の列も同じ値を持ちます。サイズ 2 のセットが 2 つあり、同一の値のコレクション。最初の行にはさらに 2 つの 1 があり、セットと見なすことができます
- マトリックス内の可能な最大コレクション サイズは、行と列の最大サイズであり、ここでは 3 です。ただし、サイズに関しては同じ値が入ったセットはございません。
前のセクションでは、その中の類似した要素の数を取得するには、特定の行または列のみに焦点を当てる必要があることを見てきました。また、数学的概念を使用して、異なるサイズのセットの数を数えます特定の行または列に存在します。
このアプローチに移りましょう -
まず、0 と 1 を含む配列、または指定されたバイナリ行列を取得します。
パラメータとして渡された行列に対して必要な答えを自動的に計算し、その答えを戻り値として返す関数を作成します。
この関数では、配列またはバイナリ行列を 2 回反復します (1 回目は行ごと、2 回目は列ごと)。
for ループでは、2 つの変数を維持します。1 つは 1 の数を格納するため、もう 1 つは 0 の数を格納するためです。
単一の行または列を繰り返し処理した後、上記の式を使用して答えを更新し、その答えを変数に保存します。
最後に、行*列を 2 回追加したので、行*列を削除して答えを返します。
行 * 列を削除しました。これは、行を反復するときにセットに 2 つのゼロと 1 の単一値が追加され、列を反復するときに再度追加されるためです。
Example
上記のコードの時間計算量は O(N*N) です。ここで、N は指定された行列の行数と列数の最大値です。
このチュートリアルでは、指定されたバイナリ行列内の 1 と 0 のセットの数を数える JavaScript プログラムの作成方法を学びました。バイナリ行列は、その名前が示すように、1 と 0 の 2 つの数値のみを含む行列です。問題のコードの時間計算量は O(N*N)、空間計算量は O(1) です。
以上がJavaScript プログラム: バイナリ行列内の 1 と 0 のセットの数を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。