ホームページ >ウェブフロントエンド >jsチュートリアル >行列のすべての行が相互に循環回転しているかどうかをチェックする JavaScript プログラム
行列は一種の 2 次元配列であり、行を定義する固定配列の配列があり、この配列のインデックスごとに固定長の配列が存在し、その長さはこれらの配列の数は、行列内に存在する列の数を定義します。マトリックスによって提供されるこれらのセルには、あらゆる種類のデータ型を格納できます。
行列が提供され、各行にはいくつかの整数が含まれており、各行が相互に回転しているかどうかを確認する必要があります。相互の回転とは、ある数値または左または右の回転によって、各行の同じ組み合わせを生成できることを意味します。
让我们假定的質問:
リーリー説明: 最初の行が定数であると仮定し、残りの行を回転すると、次のような結果が得られます。
2 番目の行を右に 1 回回転し、2 番目の行を右に 2 回回転することで、どちらも最初の行と同じにすることができます。例 2
問題を理解するための適切な例を見てきました。次に、コードを実装する手順を見てみましょう -
まず、2 つの指向性と交換技術を使用して、パラメータ伝達の要素として 1 つの関数を回転させます。
この関数では、最初に行と列の数を取得することによってシーケンスの長さを取得し、1 行目から最後の行までの循環と 0 行目の比較に使用します。
そうでない場合は、回転関数を使用して、指定された行を次の回転位置に回転させます。
次の例では、入力と出力が互いに循環しているかどうかを検査します。
入力:行列 = [ [ 1, 2, 3 ], [ 2, 3, 1 ], [ 3, 1, 2 ] ]リーリー
出力上記のコードの時間計算量は O(N*M*M) です。ここで、N は行の数、M は指定された行列に存在する列の数です。行列を行単位で走査し、係数または N を与え、行の比較と回転には係数または M*M を与えます。
この教義では、私は 1 行ごとに回転し、最初と比較することによって、所定のシーケンスのすべての行が互いに循環回転しているかどうかを検査する JavaScript プログラムを完成しました。上記のコードの時間倍数は O(N*M*M)、空間倍数は O(1) です。
以上が行列のすべての行が相互に循環回転しているかどうかをチェックする JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。