Дано : массив 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]
Есть ли способ победить очевидное решение O (n
^ 2)? Единственный прогресс, который я сделал до сих пор, это то, что D[i] = 1
всякий раз, когда A[i]
не является локальным максимумом. Я много думал и придумал НИЧЕГО. Я надеюсь в конечном итоге расширить это до 2D (так что A
и D
являются матрицами).