与えられA[1..n]
た:実数 の配列。
目標D[1..n]
:次のような配列
D[i] = min{ distance(i,j) : A[j] > A[i] }
または、より高い値の要素がない場合は、デフォルト値(0など)。ここでは本当にユークリッド距離を使いたいと思います。
例:
A = [-1.35, 3.03, 0.73, -0.06, 0.71, -0.21, -0.12, 1.49, 1.41, 1.42]
D = [1, 0, 1, 1, 2, 1, 1, 6, 1, 2]
n
明らかなO( ^ 2)ソリューションを打ち負かす方法はありますか?私がこれまでに成し遂げた唯一の進歩は、D[i] = 1
いつでもA[i]
極大ではないということです。私はよく考えていて、何も思いつきませんでした。最終的にこれを2Dに拡張したいと思っています(つまりA
、D
行列です)。