【发布时间】:2013-08-19 08:24:55
【问题描述】:
给定一个未排序的数组,找出maxj - i 之间的索引差异,例如j > i 和a[j] > a[i] 在O(n) 中。我能够在O(n^2) 复杂性中使用琐碎的方法找到j 和i,但想知道如何在O(n) 中做到这一点?
输入:{9、2、3、4、5、6、7、8、18、0}
输出:8(j = 8,i = 0)
输入:{1、2、3、4、5、6}
输出:5(j = 5,i = 0)
【问题讨论】:
-
我可以想到两种方法在 O(NlogN) 中做到这一点。我得考虑一下,看看 O(N) 是否可行。
-
如果数组按降序排序会发生什么?没有解决办法?
-
我看不出什么排序或二分搜索或任何在其 big-O 复杂性中具有
lg N因素的算法可能与解决方案有关?数组未排序。该问题要求其中的两个元素最远满足不等式。 -
这被称为“股市问题”,是本科算法课程的标准作业。
-
@PhilMiller 你是在说问题中的问题吗?
标签: algorithm sorting data-structures