这是算法优化问题。通过数组中的索引号找到最接近的索引号
我有一个整数数组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]
是中包含的数字小于A[1]=5
的索引1
的右边最接近的元素。等等。
我知道解决方案O(n*log(n))
复杂性使用二叉搜索树。我怎样才能将复杂性提高到O(n)
或者证明这是不可能的?
再次检查,b [1]不等于2,因为[2] = 6> 5 = a [1] – Daniel
对,我的错! –