2016-04-13 15 views
0

インタビューの質問があります。2つのソートされた配列で見つからない番号を見つける

2つのソート配列が指定されています。
最初はどちらも要素のセットが設定されていますが、1つの要素が1つの配列から削除されています。
削除された要素を検索します。
制約は、私たちが元の場合はO(LOGN) でインプレース、それをやっに持っている:それは擬似コードであるので、

arr1[]={1,2,3,8,12,16}; 
arr2[]={1,2,8,12,16}; 

削除要素は、私は携帯から入力しています3

+0

良い質問をするには、[質問]を読んで、良い回答を得てください。特に、少なくとも自分で何か試してみて、試したことの*コード* /擬似コードを表示する必要があります。 –

+0

@theblindprophetこれは、配列の数字が続くわけではないので、ここでは機能しません...あなたが提供する答えは連続的な範囲です... –

+0

ああ、ありがとう – theblindprophet

答えて

4

ですが、必要になります取得:

take arr1.len/2.それは3. arr1 [3]とarr2 [3]を確認します。彼らが等しい場合、失われたvsalueは3以上のインデックスにあります。それ以外では3未満です。ここでは8と12が得られます。インデックス3/2 = 1をとる。 arr1 [1]とarr2 [1]を比較してください。それらは等しいので、欠落はインデックス1の後で3の前です。したがって、arr1 [2] = 3です。

これは考えです。あなたはバイナリ検索をしており、毎回検索エリアを半分にしています。あなたは、比較することによって配列の左または右の部分を取る。あなたはこれを実装していくつかの点検をするだけですが、私の考えは明らかです。

関連する問題