このチュートリアルでは、指定された配列のサイズ 3 の反転を計算する方法を学びます。
問題ステートメント - 個別の数値エントリを含む長さ n の配列が与えられます。 arr[i] > arr[j] > arr[k] (I
ここでは、まず総当たり法を学習し、次にその時間と空間の複雑さを最適化します。
ブルート フォース アプローチでは、3 つのネストされた for ループを使用して、サイズ 3 のカウント反転を見つけます。最初のループは 1 番目の要素から n-2 番目の要素まで繰り返し、2 番目のループは i 番目の要素から n-1 番目の要素まで繰り返します。前の要素が次の要素より大きい場合は、配列を反復処理して、中央の要素より小さい要素を見つけます。
###文法###ステップ 1
ステップ 2
ステップ 3
ステップ 4
ステップ 5
例 1
時間と空間の複雑さ
時間計算量
空間複雑度
ネストされた 2 つの for ループを使用する
ステップ 1
- for ループを使用して、配列の n 要素を繰り返します。
- for ループを使用して、現在の要素の右側にある、現在の要素より小さい要素をすべて検索します。
- for ループを再度使用して、現在の要素の左側にある、現在の要素より大きい要素をすべて検索します。
- 左右の変数の値を乗算し、「cnt」変数に追加します。
次の例では、上記の方法で示したように、2 つのネストされたループを使用して、サイズ 3 の反転の合計数を見つけます。ユーザーは、出力が最初の方法と同じであることを確認できます。 リーリー 時間と空間の複雑さ
- 2 つのネストされたループを使用するため、上記の方法の時間計算量は O(n^2) です。
- 一定空間を使用する場合、空間複雑度は O(1) です。
以上が指定された配列のサイズ 3 の反転を計算する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。