这是一个算法优化问题。
我有一个整数数组A
,想要构建一个数组B
,其中包含元素的B[i]
索引,使得 ( )j
A[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)
或证明它是不可能的?