给定一个数组, 对于每个元素,我需要找到在该元素右边且比当前元素大的最小元素。
数学上来说,
对于数组 A
中的每个下标 i
,我需要找到下标 j
,使得
A[j] > A[i]
j > i
A[j] - A[i] is minimum
我需要找到每个索引(i)对应的j
值。
暴力解法时间复杂度为O(n^2)
,希望能够得到更好的方法。我考虑使用平衡二叉树达到O(n log n)
的时间复杂度,但这看起来很复杂。此外,我需要一个O(n)
的解决方案。
有没有O(n)
的解决方案?有没有证明下限是O(n log n)
的证据?
A
和i
,期望的输出是j
,满足所述条件? - Nicolas