この質問に似た質問があります。少し修正してcheck if there exists a[i] = 2*a[j] in an unsorted array a?です。ソートされた配列にA [i] = 2A [j]が存在するかどうかを確認します。
入力は、昇順で並べ替えられたn個の正の数の配列A [1 ... n]です。
問題は、A [i] = 2A [j]となるようなインデックスiとjのペアがあるかどうかを確認することです。
設計し、この問題のためにO(N)時間インプレースアルゴリズムを分析
Iの比較を介して補助データ構造およびループ内のすべての要素の二重を記憶することができれば問題は簡単であろう値を元の配列値に戻しますが、インプレース仕様ではそれが禁止されています。私が思いつくことができる最高のものはO(nlogn)です。n個の要素のそれぞれについて、その要素の2倍のバイナリ検索を行いますが、私の頭をもっと速く包むことはできません。 A
として