ユーザーから2つのアレイが提供されました。私のコードは、 left または right への回転数を調べる必要があります。要素が繰り返されないと安全に想定できます。
i/p:
配列 (arr1) 2、6、4、10、8、12、11
回転配列(arr2) 4, 10, 8, 12, 11, 2, 6
o/p: 2
方法1:
この問題に対する私のアプローチは次のようになります。
1.回転した配列から最初の要素を取得し、回転した配列から最後の要素も取得します。それらにそれぞれ「最初」と「最後」という名前を付けます。また、カウントを0に初期化します
2.「first」と arr1 の要素を最初から比較し始め、arr1 の「first」の数に到達します。同時に、最後から arr1 の要素と「last」の比較を開始し、arr1 の「last」に相当する数に達するまでデクリメントし続けます。
3.上記のステップ 2 のインクリメントとデクリメントを、ステップ 2 の同じ for ループで行うことができます。また、カウント変数をインクリメントします。
3.それだけです。「最初」または「最後」のどちらかが早く同等のものを見つけてから、カウントを中断して出力します。
方法 2:
arr2 の最初の要素を取得し、最後から arr1 要素との比較を開始し、一致が見つかるまでそれを行います。arr1 をデクリメントした回数は、回転数に相当します
上記の2つよりも優れたアプローチはありますか?