あなたが持っていると言うk
サイズの配列N
から一意の値それぞれ含有1
するがN
。
平均してお互いに最も離れている2つの数値をどのように見つけますか?
たとえば、次の配列があるとします。
[1,4,2,3]
[4,2,3,1]
[2,3,4,1]
最初の2つの配列では距離が2離れており、最後の配列では3つの数値が離れているため、答えはitem 1
と2
になります。
私はO(kN ^ 2)解を知っています(各k
配列の数値の各ペア間の距離を測定することによって)が、より良い解決策はありますか?
このようなアルゴリズムをC ++で実装したいのですが、ソリューションの説明があれば役に立ちます。