Учитывая массив, для каждого элемента мне нужно найти наименьший элемент справа от данного элемента, который больше текущего элемента.
Математически
Для каждого индекса i в массиве A мне нужно найти индекс j такой, что
A[j] > A[i]
j > i
A[j] - A[i] is minimum
Мне нужно найти j для каждого индекса i
Решение грубой силы будет O(n^2), и я надеюсь сделать лучше. Я думаю, что решение O(n log n) возможно с использованием самобалансирующегося BST, но это кажется довольно сложным. Кроме того, мне нужно решение O(n).
Есть ли решение этой проблемы? Существует ли доказательство того, что нижняя грань O(n log n)?