1

ユーザーから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つよりも優れたアプローチはありますか?

4

1 に答える 1