这是一个算法优化问题。
我有一个整数数组A,想要构建一个数组B,其中包含元素的B[i]索引,使得 ( )jA[j]B[i] = j
1. j > i
2. A[j] < A[i]
3. j is minimum of all possible j's.
例如,如果A是:
A = [1,5,6,4,3,1,2]
然后B将是(从 0 开始索引)
B = [-1,3,3,4,5,-1,-1]
B[0] = -1因为没有数字小于1索引大于0。
B[1] = 3因为A[3]是最靠近索引1的元素A,其中包含小于 的数字A[1]=5。等等。
我知道解决方案O(n*log(n))使用二叉搜索树的复杂解决方案。我怎样才能提高复杂性O(n)或证明它是不可能的?