私は2つのソートされた配列を持っています。両方が異なるかどうかを確認する必要があります。
これらの配列には、特定の範囲内の要素があります。
複数の要素が異なる場合があります。
配列はさまざまなサイズを持つことができます。この場合、違いを指摘できるはずです
大まかな例:
入力:
array1: 1 2 4 5 8 9 12
array2: 1 4 8 10 12 13 14
ここでの範囲は 1 ~ 15 です。
最も最適な比較アルゴリズムは何ですか?
相違点と類似点も指摘できるはずです。たとえば、4 は両方にあり、2 番目の配列には 5 がありません。
私の解決策:
配列のインデックスを追跡するための 2 つのポインター。
それらを配列の先頭に向けます。
最初の 2 つの要素の比較を開始します。
両方が等しい場合 -> 次のものに移動します。
そうしないと配列の 2 つの要素のうち最大のものを見つけます。array1 に大きな要素があるとします。
もう一方の配列の要素を二分探索 (array2) --> その配列の要素の pos を pos と言う
pos まで配列の要素を破棄します。
ポインタをインクリメントします。このポインターまで配列のその部分を破棄します。繰り返す。
これには複雑さがありますn log n
(平均よりもはるかに少ないです。これは、すべての要素を検索する必要がある場合です)。