この記事では、JavaScript プログラムを使用して、指定された数値のすべての回転が指定された数値以上であるかどうかを確認します。アルゴリズムを作成し、実行している各ステップを説明します。これから説明するコードの時間計算量は楽観的ですが、空間計算量はコードごとに向上します。
この問題では、数値が与えられており、すべての回転が現在の数値より大きいかどうかを確認する必要があります。あるいは単に現在の数値の回転が現在の数値より小さいかどうかを確認する必要があります。ローテーション内の数値の場合は false を返し、それ以外の場合は true を返します。
最後に、現在の数値を最後の数値の後に追加します。これにより、最初のスピンが得られます。
###例###
現在の番号の次のスピンまたは 2 番目のスピンを取得するには、最初のスピンの次のスピンを取得することも、どのスピンにも共通する別の方法で実行することもできます。見て- ### リーリー上記のコードでは、数値が与えられ、与えられた数値の i 番目の回転を見つける必要があります。まず、現在の数値の最後の「i」桁を別の変数に保存します。
上で説明した方法は数値を時計回りに回転させることですが、反時計回りに回転させるには先頭から数値を選択して最後に追加する必要があります。
どの回転を選択する必要があるか指定がない場合は、時計回りを選択します。したがって、この例では時計回りの回転が見られます。
###方法###このメソッドは総当りメソッドです。このメソッドでは、指定された数値のすべてのスピンを見つけて、それより大きな数値をすべてチェックします。現在の数値より小さい数値が見つかった場合は false を返し、それ以外の場合は true を返します。
###例###まずコードを見て、それからコードの説明に移ります -
リーリー上記のプログラムでは、まず for ループで 1 から数値から 1 を引いたサイズまでを反復し、1 からサイズから 1 を引いた数値までの各回転を取得します。各反復で、事前定義された関数を呼び出します。
関数から返された true 値と false 値を保存し、必要に応じて回答を出力する、answer という変数を維持します。
上記のコードでは、check() 関数を合計 n 回呼び出します。n は指定された数値のサイズです。関数内では、指定された数値のコピーである部分文字列を作成し、n 回繰り返します。これは、それを n*n 回使用することを意味します。したがって、指定された関数の時間計算量は O(N*N) になります。
チェック関数では、指定された数値のコピーを作成するたびに、余分な N 個のスペースを使用していることになります。したがって、指定された関数の空間計算量は O(N) です。
###一般的なアイデア###上記のコードでは、すべての数値が異なる場合、時間計算量 O(N) と空間計算量 O(1) だけで答えを得ることができます。これは、いずれかの数値が最初の数値より小さい場合に意味が生じるからです。正確なスピンでは、最初の数値と比較して数値が小さくなる可能性があります。
###結論は###このチュートリアルでは、JavaScript プログラムを使用して、指定された数値のすべての回転が指定された数値以上であるかどうかを確認します。プログラムの時間計算量は O(N*N)、空間計算量は O(N) です。ここで、N は指定された数値のサイズです。与えられた数字のすべてのスピンを見つけて元の数字と比較できるプログラムを実装しました。
以上が指定された数値のすべての回転が指定された数値以上であるかどうかを確認する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。